diff --git a/loader/dobby/.clang-format b/loader/dobby/.clang-format
deleted file mode 100644
index 17d6bc41..00000000
--- a/loader/dobby/.clang-format
+++ /dev/null
@@ -1,18 +0,0 @@
-BasedOnStyle: LLVM
-
-IndentWidth: 2
-TabWidth: 2
-UseTab: Never
-ColumnLimit: 120
-
-FixNamespaceComments: true
-
-# default is false
-#AlignConsecutiveMacros: true
-#AlignConsecutiveAssignments: true
-#AlignConsecutiveDeclarations: true
-
-# default is true
-ReflowComments: false
-SortIncludes : false
-AllowShortFunctionsOnASingleLine: false
\ No newline at end of file
diff --git a/loader/dobby/.github/workflows/DarwinAutoBuild.yaml b/loader/dobby/.github/workflows/DarwinAutoBuild.yaml
deleted file mode 100644
index f7b074c0..00000000
--- a/loader/dobby/.github/workflows/DarwinAutoBuild.yaml
+++ /dev/null
@@ -1,54 +0,0 @@
-name: Darwin Auto Build
-
-on:
-  push:
-    branches:
-      - master
-
-jobs:
-  default:
-    runs-on: macOS-latest
-    steps:
-    - name: checkout master
-      uses: actions/checkout@master
-
-    - name: auto build
-      run: |
-        export ANDROID_NDK_DIR=$ANDROID_NDK_18R_PATH
-        current_date_time="`date +%Y%m%d`";
-        export DOBBY_BUILD_OUTPUT_NAME=dobby_static_${current_date_time}.tar.gz
-        ./build-workspace/auto-build.sh
-        echo "DOBBY_BUILD_OUTPUT_NAME=$DOBBY_BUILD_OUTPUT_NAME" >> $GITHUB_ENV
-      shell: bash
-
-    - name: print output
-      run: |
-        ls -lha .
-        echo "output=$DOBBY_BUILD_OUTPUT_NAME"
-
-    - name: Delete old release assets
-      uses: mknejp/delete-release-assets@v1
-      with:
-        token: ${{ secrets.GITHUB_TOKEN }}
-        tag: latest
-        assets: "*.tar.gz"
-        fail-if-no-assets: false
-        fail-if-no-release: false
-
-    - name: update tag
-      uses: richardsimko/update-tag@master
-      with:
-        tag_name: latest
-      env:
-        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-
-    - name: Update release
-      uses: ncipollo/release-action@v1
-      with:
-        token: ${{ secrets.GITHUB_TOKEN }}
-        tag: latest
-        name: release ${{ github.ref }}
-        body: "dobby static library update for darwin and android"
-        artifacts: "./${{ env.DOBBY_BUILD_OUTPUT_NAME }}"
-        allowUpdates: true
-        replacesArtifacts: true
\ No newline at end of file
diff --git a/loader/dobby/.gitignore b/loader/dobby/.gitignore
deleted file mode 100644
index 4bbed764..00000000
--- a/loader/dobby/.gitignore
+++ /dev/null
@@ -1,80 +0,0 @@
-.DS_Store
-.idea/
-*-build*/
-build-output/
-
-CMakeLists.txt.user
-CMakeCache.txt
-CMakeFiles
-CMakeScripts
-Testing
-Makefile
-cmake_install.cmake
-install_manifest.txt
-compile_commands.json
-CTestTestfile.cmake
-_deps
-
-## Build generated
-build/
-DerivedData/
-
-## Various settings
-*.pbxuser
-!default.pbxuser
-*.mode1v3
-!default.mode1v3
-*.mode2v3
-!default.mode2v3
-*.perspectivev3
-!default.perspectivev3
-xcuserdata/
-
-## Other
-*.moved-aside
-*.xccheckout
-*.xcscmblueprint
-
-## Obj-C/Swift specific
-*.hmap
-*.ipa
-*.dSYM.zip
-*.dSYM
-
-# Prerequisites
-*.d
-
-# Compiled Object files
-*.slo
-*.lo
-*.o
-*.obj
-
-# Precompiled Headers
-*.gch
-*.pch
-
-# Compiled Dynamic libraries
-*.so
-*.dylib
-*.dll
-
-# Fortran module files
-*.mod
-*.smod
-
-# Compiled Static libraries
-*.lai
-*.la
-*.a
-*.lib
-
-# Executables
-*.exe
-*.out
-*.app
-
-# Prefab
-/prefab/**/*.a
-/prefab/**/*.h
-/AndroidManifest.xml
diff --git a/loader/dobby/CMakeLists.txt b/loader/dobby/CMakeLists.txt
deleted file mode 100644
index 7946dbe8..00000000
--- a/loader/dobby/CMakeLists.txt
+++ /dev/null
@@ -1,439 +0,0 @@
-cmake_minimum_required(VERSION 3.5)
-project(Dobby)
-enable_language(ASM)
-
-include(cmake/Util.cmake)
-include(cmake/Globals.cmake)
-include(cmake/Macros.cmake)
-include(cmake/XcodeGenerator.cmake)
-include(cmake/AutoFiles.cmake)
-
-set(CMAKE_CXX_STANDARD 11)
-set(CMAKE_CXX_STANDARD_REQUIRED ON)
-set(CMAKE_C_STANDARD 11)
-
-AutoFiles("." "CmakeSource" "\\.(cc|cpp|c|h)$")
-
-# :< You Shall Not Pass!
-if(0)
-  set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -Werror")
-endif()
-
-# ===== Handle Option =====
-option(DOBBY_GENERATE_SHARED "Build shared library" OFF)
-
-option(DOBBY_DEBUG "Enable debug logging" OFF)
-
-option(NearBranch "Enable Near Branch Trampoline" ON)
-
-option(DynamicBinaryInstrument "Enable Dynamic Binary Instrument" OFF)
-
-option(FullFloatingPointRegisterPack "Save and pack all floating-point registers" OFF)
-
-option(EnableObfuscation "Enable llvm obfuscation" OFF)
-
-option(Plugin.SymbolResolver "Resolve symbol by [DobbySymbolResolver] " OFF)
-
-option(Plugin.GlobalOffsetTableHook "Global Offset Table Hook by [DobbyGlobalOffsetTableReplace] " OFF)
-
-option(Plugin.LinkerLoadCallback "Register image load callback " OFF)
-
-# frida is better choice
-option(Plugin.ApplicationEventMonitor "Auto monitor linker, file, etc." OFF)
-
-option(Plugin.Android.BionicLinkerRestriction "Enable android bionic linker restriction" OFF)
-
-# Use native assembly bridge to replace the runtime codegen
-# if(CLOSURE_BRIDGE_TEMPLATE)
-#   SET(CMAKE_ASM_FLAGS "${CMAKE_C_FLAGS}")
-#   enable_language(ASM)
-#   add_definitions(-DENABLE_CLOSURE_BRIDGE_TEMPLATE)
-# endif()
-
-# Enable debug will log more information
-if ((NOT DEFINED CMAKE_BUILD_TYPE) OR (CMAKE_BUILD_TYPE STREQUAL "Debug"))
-  message(STATUS "[Dobby] Enabling debug logging because CMAKE_BUILD_TYPE is Debug or undefined")
-  set(DOBBY_DEBUG ON)
-endif()
-if(DOBBY_DEBUG)
-  add_definitions(-DDOBBY_DEBUG)
-  add_definitions(-DLOGGING_DEBUG)
-  message(STATUS "[Dobby] Enable debug logging")
-endif()
-
-# Enable full floating point register pack
-# for arm64, allow access q8 - q31
-if(FullFloatingPointRegisterPack)
-  add_definitions(-DFULL_FLOATING_POINT_REGISTER_PACK)
-  message(STATUS "[Dobby] Save and pack all floating-point registers")
-endif()
-
-if(SYSTEM.Darwin)
-  # -lstdc++
-  set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -stdlib=libc++")
-  if (NOT DOBBY_DEBUG)
-    set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,-x -Wl,-S")
-    set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,-exported_symbol,_log_internal_impl -Wl,-exported_symbol,_log_set_level")
-    set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,-exported_symbol,_CodePatch")
-    set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,-exported_symbol,_DobbyBuildVersion -Wl,-exported_symbol,_DobbyHook -Wl,-exported_symbol,_DobbyDestroy")
-    # set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,-exported_symbol,_DobbyGlobalOffsetTableReplace")
-    # set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,-exported_symbol,_DobbySymbolResolver")
-    # set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,-exported_symbol,_intercept_routing_common_bridge_handler")
-    set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,-exported_symbol,_dobby_enable_near_branch_trampoline -Wl,-exported_symbol,_dobby_disable_near_branch_trampoline")
-  endif()
-elseif(SYSTEM.Android)
-  set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fomit-frame-pointer")
-  if(NOT DOBBY_DEBUG)
-    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -ffunction-sections -fdata-sections")
-    set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--gc-sections -Wl,--exclude-libs,ALL")
-  endif()
-elseif(SYSTEM.Linux)
-  set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC")
-elseif(SYSTEM.Windows)
-  add_definitions(-D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_SECURE_NO_DEPRECATE)
-  if(NOT DOBBY_DEBUG)
-    set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /export:log_internal_impl")
-    set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /export:DobbyHook /export:DobbyDestroy")
-    set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /export:dobby_enable_near_branch_trampoline /export:dobby_disable_near_branch_trampoline")
-  endif()
-endif()
-
-if(COMPILER.Clang)
-  if(NOT DOBBY_DEBUG)
-    # set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O3")
-    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fno-rtti -fvisibility=hidden -fvisibility-inlines-hidden")
-  endif()
-  if(PROCESSOR.ARM)
-    set(CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} -arch armv7 -x assembler-with-cpp")
-  elseif(PROCESSOR.AARCH64)
-    set(CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} -arch arm64 -x assembler-with-cpp")
-  endif()
-endif()
-
-set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} ${CMAKE_CXX_FLAGS}")
-
-message(STATUS "CMAKE_C_COMPILER: ${CMAKE_C_COMPILER}")
-message(STATUS "CMAKE_CXX_COMPILER: ${CMAKE_CXX_COMPILER}")
-message(STATUS "CMAKE_C_FLAGS: ${CMAKE_C_FLAGS}")
-message(STATUS "CMAKE_CXX_FLAGS: ${CMAKE_CXX_FLAGS}")
-message(STATUS "CMAKE_SHARED_LINKER_FLAGS: ${CMAKE_SHARED_LINKER_FLAGS}")
-
-# arch prefix
-if(PROCESSOR.ARM)
-  set(ARCH1 ARM)
-  set(arch1 arm)
-  set(core_arch arm)
-elseif(PROCESSOR.AARCH64)
-  set(ARCH1 ARM64)
-  set(arch1 arm64)
-  set(core_arch arm64)
-elseif(PROCESSOR.X86)
-  set(ARCH1 X86)
-  set(arch1 x86)
-  set(core_arch ia32)
-elseif(PROCESSOR.X86_64)
-  set(ARCH1 X64)
-  set(arch1 x64)
-  set(core_arch x64)
-else()
-endif()
-
-# system prefix
-if(SYSTEM.Darwin OR SYSTEM.iOS OR SYSTEM.macOS)
-  set(platform1 posix)
-  set(platform2 Darwin)
-elseif(SYSTEM.Linux OR SYSTEM.Android)
-  set(platform1 posix)
-  set(platform2 Linux)
-elseif(SYSTEM.Windows)
-  set(platform1 windows)
-  set(platform2 Windows)
-else()
-endif()
-
-if(CMAKE_GENERATOR STREQUAL Xcode)
-endif()
-include(cmake/dobby.xcode.source.cmake)
-
-include_directories(
-  .
-
-  ./include
-
-  ./source
-  ./source/include
-  ./source/UserMode
-
-  ./external
-  ./external/logging
-  ./external/xnucxx
-  ./external/misc-helper
-
-  builtin-plugin
-)
-
-set(DOBBY_DIR ${CMAKE_CURRENT_SOURCE_DIR})
-set(dobby.SOURCE_FILE_LIST ${dobby.SOURCE_FILE_LIST}
-  # cpu
-  source/core/arch/CpuFeature.cc
-  source/core/arch/CpuRegister.cc
-
-  # assembler
-  source/core/modules/assembler/assembler.cc
-  source/core/modules/assembler/assembler-${core_arch}.cc
-
-  # codegen
-  source/core/modules/codegen/codegen-${core_arch}.cc
-
-  # memory kit
-  source/MemoryAllocator/CodeBuffer/CodeBufferBase.cc
-  source/MemoryAllocator/CodeBuffer/code-buffer-${arch1}.cc
-  source/MemoryAllocator/AssemblyCodeBuilder.cc
-  source/MemoryAllocator/MemoryArena.cc
-
-  # instruction relocation
-  source/InstructionRelocation/${arch1}/${ARCH1}InstructionRelocation.cc
-
-  # intercept routing
-  source/InterceptRouting/InterceptRouting.cpp
-
-  # intercept routing trampoline
-  source/TrampolineBridge/Trampoline/${arch1}/trampoline-${arch1}.cc
-
-  # intercept routing plugin (buildin)
-  source/InterceptRouting/Routing/FunctionInlineReplace/function-inline-replace.cc
-  source/InterceptRouting/Routing/FunctionInlineReplace/FunctionInlineReplaceExport.cc
-
-  # plugin register
-  source/InterceptRouting/RoutingPlugin/RoutingPlugin.cc
-
-  # platform util
-  source/UserMode/PlatformUtil/${platform2}/ProcessRuntimeUtility.cc
-
-  # user mode - platform interface
-  source/UserMode/UnifiedInterface/platform-${platform1}.cc
-
-  # user mode - executable memory
-  source/UserMode/ExecMemory/code-patch-tool-${platform1}.cc
-  source/UserMode/ExecMemory/clear-cache-tool-all.c
-
-  # main
-  source/dobby.cpp
-  source/Interceptor.cpp
-  )
-
-if (PROCESSOR.X86_64 OR PROCESSOR.X86)
-  set(NearBranch ON)
-  if (PROCESSOR.X86_64)
-    add_definitions(-DDETOURS_X64)
-  endif()
-endif()
-
-if(SYSTEM.Darwin)
-  include_directories(
-    source/UserMode/ExecMemory/substrated/include
-  )
-  set(dobby.SOURCE_FILE_LIST ${dobby.SOURCE_FILE_LIST}
-    source/UserMode/ExecMemory/code-patch-tool-darwin.cc
-  )
-endif()
-
-if(SYSTEM.iOS)
-  add_definitions(-DCODE_PATCH_WITH_SUBSTRATED)
-  set(dobby.SOURCE_FILE_LIST ${dobby.SOURCE_FILE_LIST}
-    source/UserMode/ExecMemory/substrated/mach_interface_support/substrated_client.c
-  )
-endif()
-
-
-if(FunctionWrapper OR DynamicBinaryInstrument)
-  set(dobby.SOURCE_FILE_LIST ${dobby.SOURCE_FILE_LIST}
-    # closure trampoline bridge
-    source/TrampolineBridge/ClosureTrampolineBridge/common-bridge-handler.cc
-    source/TrampolineBridge/ClosureTrampolineBridge/${arch1}/helper-${arch1}.cc
-    source/TrampolineBridge/ClosureTrampolineBridge/${arch1}/closure-bridge-${arch1}.cc
-    source/TrampolineBridge/ClosureTrampolineBridge/${arch1}/${ARCH1}AssemblyClosureTrampoline.cc
-
-    # user mode - multi thread support
-    # source/UserMode/MultiThreadSupport/ThreadSupport.cpp
-    # source/UserMode/Thread/PlatformThread.cc
-    # source/UserMode/Thread/platform-thread-${platform1}.cc
-    )
-endif()
-
-if(FunctionWrapper)
-  message(FATAL_ERROR "[!] FunctionWrapper plugin is not supported")
-endif()
-
-if(DynamicBinaryInstrument)
-  message(STATUS "[Dobby] Enable dynamic binary instrument(hook instruction with register context)")
-  set(dobby.SOURCE_FILE_LIST ${dobby.SOURCE_FILE_LIST}
-    source/InterceptRouting/Routing/DynamicBinaryInstrument/dynamic-binary-instrument.cc
-    source/InterceptRouting/Routing/DynamicBinaryInstrument/DynamicBinaryInstrumentExport.cc
-    source/InterceptRouting/Routing/DynamicBinaryInstrument/intercept_routing_handler.cc
-    )
-endif()
-
-if(NearBranch)
-  message(STATUS "[Dobby] Enable near branch trampoline(trampoline within single instruction)")
-  set(dobby.SOURCE_FILE_LIST ${dobby.SOURCE_FILE_LIST}
-    source/InterceptRouting/RoutingPlugin/NearBranchTrampoline/NeaBranchTrampoline.cc
-    source/MemoryAllocator/NearMemoryArena.cc)
-endif()
-
-add_subdirectory(external/misc-helper)
-get_target_property(misc_helper.SOURCE_FILE_LIST misc_helper SOURCES)
-
-# add logging library
-add_subdirectory(external/logging)
-get_target_property(logging.SOURCE_FILE_LIST logging SOURCES)
-
-# add xnucxx library
-add_subdirectory(external/xnucxx)
-get_target_property(xnucxx.SOURCE_FILE_LIST xnucxx SOURCES)
-
-if(Plugin.GlobalOffsetTableHook AND SYSTEM.Darwin)
-  message(STATUS "[Dobby] Enable global offset table hook")
-
-  include_directories(builtin-plugin/GlobalOffsetTableHook)
-  add_subdirectory(builtin-plugin/GlobalOffsetTableHook)
-  get_target_property(global_offset_table_hook.SOURCE_FILE_LIST global_offset_table_hook SOURCES)
-  set(dobby.plugin.SOURCE_FILE_LIST ${dobby.plugin.SOURCE_FILE_LIST}
-    ${global_offset_table_hook.SOURCE_FILE_LIST}
-    )
-endif()
-
-if(Plugin.SymbolResolver)
-  message(STATUS "[Dobby] Enable symbol resolver")
-
-  include_directories(builtin-plugin/SymbolResolver)
-  add_subdirectory(builtin-plugin/SymbolResolver)
-  get_target_property(symbol_resolver.SOURCE_FILE_LIST symbol_resolver SOURCES)
-  set(dobby.plugin.SOURCE_FILE_LIST ${dobby.plugin.SOURCE_FILE_LIST}
-    ${symbol_resolver.SOURCE_FILE_LIST}
-    )
-endif()
-
-if(Plugin.Android.BionicLinkerRestriction)
-  if(NOT SYSTEM.Android)
-    message(FATAL_ERROR "[!] Plugin.Android.BionicLinkerRestriction only works on Android.")
-  endif()
-  message(STATUS "[Dobby] Enable Plugin.Android.BionicLinkerRestriction")
-  set(dobby.plugin.SOURCE_FILE_LIST ${dobby.plugin.SOURCE_FILE_LIST}
-    builtin-plugin/BionicLinkerRestriction/bionic_linker_restriction.cc
-  )
-endif()
-
-if(Plugin.HideSystemCall)
-  set(dobby.plugin.SOURCE_FILE_LIST ${dobby.plugin.SOURCE_FILE_LIST}
-    )
-endif()
-
-if(Plugin.LinkerLoadCallback)
-  set(dobby.plugin.SOURCE_FILE_LIST ${dobby.plugin.SOURCE_FILE_LIST}
-    builtin-plugin/LinkerImageLoadCallback/linker_load_callback.cc
-    )
-endif()
-
-set(dobby.HEADER_FILE_LIST
-  include/dobby.h
-  )
-
-# add build version
-string(TIMESTAMP TODAY "%Y%m%d")
-set(VERSION_REVISION "-${TODAY}")
-if (EXISTS "${CMAKE_SOURCE_DIR}/.git")
-  execute_process(
-    COMMAND git rev-parse --short --verify HEAD
-    WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
-    OUTPUT_VARIABLE VERSION_COMMIT_HASH
-    OUTPUT_STRIP_TRAILING_WHITESPACE
-  )
-  if(VERSION_COMMIT_HASH)
-    set(VERSION_REVISION "${VERSION_REVISION}-${VERSION_COMMIT_HASH}")
-  endif()
-endif()
-set(DOBBY_BUILD_VERSION "Dobby${VERSION_REVISION}")
-add_definitions(-D__DOBBY_BUILD_VERSION__="${DOBBY_BUILD_VERSION}")
-message(STATUS "[Dobby] ${DOBBY_BUILD_VERSION}")
-
-if(DOBBY_GENERATE_SHARED)
-  message(STATUS "[Dobby] Generate shared library")
-  set(DOBBY_LIBRARY_TYPE SHARED)
-else()
-  message(STATUS "[Dobby] Generate static library")
-  set(DOBBY_LIBRARY_TYPE STATIC)
-endif()
-add_library(dobby ${DOBBY_LIBRARY_TYPE} ${dobby.HEADER_FILE_LIST} ${dobby.SOURCE_FILE_LIST} ${logging.SOURCE_FILE_LIST} ${xnucxx.SOURCE_FILE_LIST} ${dobby.plugin.SOURCE_FILE_LIST})
-
-target_include_directories(dobby PUBLIC include)
-
-if(EnableObfuscation)
-set(linker_flags "${linker_flags} -Wl,-mllvm -Wl,-obfuscator-conf=all")
-endif()
-set_target_properties(dobby
-  PROPERTIES LINK_FLAGS "${linker_flags}"
-  )
-if(SYSTEM.Darwin)
-  # set(CMAKE_BUILD_WITH_INSTALL_NAME_DIR TRUE)
-  set(CMAKE_INSTALL_NAME_DIR "@rpath")
-  set(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "-Wl,-rpath,")
-  add_library(DobbyX ${DOBBY_LIBRARY_TYPE} ${dobby.HEADER_FILE_LIST} ${dobby.SOURCE_FILE_LIST} ${logging.SOURCE_FILE_LIST} ${xnucxx.SOURCE_FILE_LIST} ${dobby.plugin.SOURCE_FILE_LIST})
-
-  set_target_properties(DobbyX
-    PROPERTIES LINK_FLAGS "${linker_flags}"
-  )
-
-  # set framework property
-  set_target_properties(DobbyX PROPERTIES
-    FRAMEWORK TRUE
-    FRAMEWORK_VERSION A
-    MACOSX_FRAMEWORK_IDENTIFIER "com.dobby.dobby"
-    # MACOSX_FRAMEWORK_INFO_PLIST Info.plist
-    VERSION 1.0.0 # current version
-    SOVERSION 1.0.0 # compatibility version
-    PUBLIC_HEADER include/dobby.h
-    XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "Apple Development"
-  )
-  # set_target_properties(Dobby PROPERTIES
-  #  LINK_FLAGS "${CMAKE_SHARED_LINKER_FLAGS}"
-  #  )
-
-  # message(STATUS "[Dobby] Enable Gollum.framework(iOS: 11.0 <= version, version <= 12.2, version == 12.4 )")
-  # add_custom_command(TARGET Dobby
-  #   POST_BUILD
-  #   COMMAND mkdir -p $<TARGET_FILE_DIR:${dobby_output_name}>/Frameworks
-  #   COMMAND cp -R ${CMAKE_SOURCE_DIR}/buildin-plugin/Gollum_2019.12.31.framework $<TARGET_FILE_DIR:${dobby_output_name}>/Frameworks/Gollum.framework
-  #   )
-endif()
-
-if(SYSTEM.Android)
-  target_link_libraries(dobby log)
-endif()
-
-if(SYSTEM.Linux)
-  target_link_libraries(dobby dl)
-endif()
-
-if(SYSTEM.Darwin)
-  target_link_libraries(DobbyX
-    "-framework Foundation")
-endif()
-
-if(SYSTEM.Darwin)
-  install(TARGETS DobbyX
-    FRAMEWORK DESTINATION Framework)
-endif()
-
-install(TARGETS dobby
-  LIBRARY DESTINATION lib)
-
-if(SYSTEM.Darwin)
-  add_subdirectory(builtin-plugin/ObjcRuntimeHook)
-  if(PROCESSOR.AARCH64)
-    add_subdirectory(builtin-plugin/SupervisorCallMonitor)
-  endif()
-endif()
-
-# add_subdirectory(example)
-
diff --git a/loader/dobby/LICENSE b/loader/dobby/LICENSE
deleted file mode 100644
index f49a4e16..00000000
--- a/loader/dobby/LICENSE
+++ /dev/null
@@ -1,201 +0,0 @@
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
-
-   APPENDIX: How to apply the Apache License to your work.
-
-      To apply the Apache License to your work, attach the following
-      boilerplate notice, with the fields enclosed by brackets "[]"
-      replaced with your own identifying information. (Don't include
-      the brackets!)  The text should be enclosed in the appropriate
-      comment syntax for the file format. We also recommend that a
-      file or class name and description of purpose be included on the
-      same "printed page" as the copyright notice for easier
-      identification within third-party archives.
-
-   Copyright [yyyy] [name of copyright owner]
-
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
\ No newline at end of file
diff --git a/loader/dobby/README.md b/loader/dobby/README.md
deleted file mode 100644
index 43e39471..00000000
--- a/loader/dobby/README.md
+++ /dev/null
@@ -1,45 +0,0 @@
-## Dobby 
-
-[![Contact me Telegram](https://img.shields.io/badge/Contact%20me-Telegram-blue.svg)](https://t.me/IOFramebuffer) [![Join group Telegram](https://img.shields.io/badge/Join%20group-Telegram-brightgreen.svg)](https://t.me/dobby_group)  
-
-Dobby a lightweight, multi-platform, multi-architecture exploit hook framework.
-
-- Minimal and modular library
-- Multi-platform support(Windows/macOS/iOS/Android/Linux)
-- Multiple architecture support(X86, X86-64, ARM, ARM64)
-- Clean code without STL(port to kernel easily)
-- Plugin support(SymbolResolver, SupervisorCallMonitor)
-- iOS kernel exploit support(Gollum ?)
-
-## Getting started
-
-```
-git clone https://github.com/jmpews/Dobby.git --depth=1
-cd Dobby/example/
-mkdir build; cd build; cmake ..
-```
-
-Or download [latest release](https://github.com/jmpews/Dobby/releases/tag/latest)
-
-#### [Build Installation](docs/build-documentation.md)
-
-#### [Getting Started with iOS](docs/get-started-ios.md)
-
-#### [Getting Started with Android](docs/get-started-android.md)
-
-## Documentation
-
-[full Installation documentation site](https://jmpews.github.io/Dobby/#/)
-
-## Download
-
-[download static library](https://github.com/jmpews/Dobby/releases/tag/latest)
-
-## Credits
-
-1. [frida-gum](https://github.com/frida/frida-gum)
-2. [minhook](https://github.com/TsudaKageyu/minhook)
-3. [substrate](https://github.com/jevinskie/substrate).
-4. [v8](https://github.com/v8/v8)
-5. [dart](https://github.com/dart-lang/sdk)
-6. [vixl](https://git.linaro.org/arm/vixl.git)
diff --git a/loader/dobby/README_zh-cn.md b/loader/dobby/README_zh-cn.md
deleted file mode 100644
index 2f528b45..00000000
--- a/loader/dobby/README_zh-cn.md
+++ /dev/null
@@ -1,3 +0,0 @@
-## Dobby
-
-**待更新**
\ No newline at end of file
diff --git a/loader/dobby/build-workspace/auto-build.sh b/loader/dobby/build-workspace/auto-build.sh
deleted file mode 100644
index 72542e66..00000000
--- a/loader/dobby/build-workspace/auto-build.sh
+++ /dev/null
@@ -1,149 +0,0 @@
-#!/bin/sh
-
-# if error, exit
-set -
-
-CURRENT_DIR=$(dirname "$0")
-SOURCE_DIR=${CURRENT_DIR}/..
-
-compress_dir_array=""
-
-summary_output_dir_name=auto-build-output
-
-rm -rf ${summary_output_dir_name}
-
-# Darwin ================================================================
-
-darwin_library_name=libdobby.a
-darwin_fat_library_name=libdobby.a
-
-# build macos x86_64
-output_dir_name=auto-build-workspace/darwin-x86_64-build
-echo "prepare build ${output_dir_name}"
-
-mkdir -p ${CURRENT_DIR}/${output_dir_name}
-cmake -S ${SOURCE_DIR} -B ${output_dir_name} -DCMAKE_BUILD_TYPE=Release \
-  -DDOBBY_GENERATE_SHARED=OFF -DDOBBY_DEBUG=OFF
-cmake --build ${output_dir_name} --parallel 4 --target dobby
-
-mkdir -p ${summary_output_dir_name}/darwin/x86_64
-cp -r ${output_dir_name}/${darwin_library_name} ${summary_output_dir_name}/darwin/x86_64
-
-# build iphone arm64
-output_dir_name=auto-build-workspace/darwin-arm64-build
-compress_dir_array="$compress_dir_array $output_dir_name"
-echo "prepare build ${output_dir_name}"
-
-mkdir -p ${CURRENT_DIR}/${output_dir_name}
-cmake -S ${SOURCE_DIR} -B ${output_dir_name} -DCMAKE_BUILD_TYPE=Release \
-  -DCMAKE_SYSTEM_NAME=iOS -DCMAKE_OSX_ARCHITECTURES=arm64 -DCMAKE_SYSTEM_PROCESSOR=arm64 -DCMAKE_OSX_DEPLOYMENT_TARGET=9.3 \
-  -DDOBBY_GENERATE_SHARED=OFF -DDOBBY_DEBUG=OFF
-cmake --build ${output_dir_name} --parallel 4 --target dobby
-
-mkdir -p ${summary_output_dir_name}/darwin/arm64
-cp -r ${output_dir_name}/${darwin_library_name} ${summary_output_dir_name}/darwin/arm64
-
-# build iphone arm64e
-output_dir_name=auto-build-workspace/darwin-arm64e-build
-compress_dir_array="$compress_dir_array $output_dir_name"
-echo "prepare build ${output_dir_name}"
-
-mkdir -p ${CURRENT_DIR}/${output_dir_name}
-cmake -S ${SOURCE_DIR} -B ${output_dir_name} -DCMAKE_BUILD_TYPE=Release \
-  -DCMAKE_TOOLCHAIN_FILE=cmake/ios.toolchain.cmake \
-  -DPLATFORM=OS64 -DARCHS="arm64e" -DCMAKE_SYSTEM_PROCESSOR=arm64e \
-  -DENABLE_BITCODE=0 -DENABLE_ARC=0 -DENABLE_VISIBILITY=1 -DDEPLOYMENT_TARGET=9.3 \
-  -DDOBBY_GENERATE_SHARED=OFF -DDOBBY_DEBUG=OFF
-cmake --build ${output_dir_name} --parallel 4 --target dobby
-
-mkdir -p ${summary_output_dir_name}/darwin/arm64e
-cp -r ${output_dir_name}/${darwin_library_name} ${summary_output_dir_name}/darwin/arm64e
-
-# build darwin universal
-output_dir_name=auto-build-workspace/darwin-universal-build
-echo "prepare build ${output_dir_name}"
-
-mkdir -p ${CURRENT_DIR}/${output_dir_name}
-cp -r ${summary_output_dir_name}/darwin/arm64/${darwin_library_name} ${output_dir_name}
-
-# create universal fat lib
-lipo -create \
-  ${summary_output_dir_name}/darwin/arm64/${darwin_fat_library_name} \
-  ${summary_output_dir_name}/darwin/arm64e/${darwin_fat_library_name} \
-  ${summary_output_dir_name}/darwin/x86_64/${darwin_fat_library_name} \
-  -output ${output_dir_name}/${darwin_fat_library_name}
-
-mkdir -p ${summary_output_dir_name}/darwin/universal
-cp -r ${output_dir_name}/${darwin_library_name} ${summary_output_dir_name}/darwin/universal
-
-# Android ================================================================
-
-android_library_name=libdobby.a
-
-# build android aarch64
-output_dir_name=auto-build-workspace/android-arm64-build
-compress_dir_array="$compress_dir_array $output_dir_name"
-echo "prepare build ${output_dir_name}"
-
-cmake -S ${SOURCE_DIR} -B ${output_dir_name} -DCMAKE_BUILD_TYPE=Release \
-  -DCMAKE_SYSTEM_NAME=Android -DCMAKE_ANDROID_ARCH_ABI="arm64-v8a" -DCMAKE_ANDROID_NDK=$ANDROID_NDK_DIR -DCMAKE_SYSTEM_VERSION=21 -DCMAKE_ANDROID_NDK_TOOLCHAIN_VERSION=clang \
-  -DDOBBY_GENERATE_SHARED=OFF -DDOBBY_DEBUG=OFF -DPlugin.Android.BionicLinkerRestriction=ON
-cmake --build ${output_dir_name} --parallel 4 --target dobby
-
-mkdir -p ${summary_output_dir_name}/android/arm64
-mv ${output_dir_name}/${android_library_name} ${summary_output_dir_name}/android/arm64/${android_library_name}
-mv ${output_dir_name}/${android_library_name} "prefab/modules/dobby/libs/android.arm64-v8a/${android_library_name}"
-
-# build android armv7
-output_dir_name=auto-build-workspace/android-armv7-build
-compress_dir_array="$compress_dir_array $output_dir_name"
-echo "prepare build ${output_dir_name}"
-
-cmake -S ${SOURCE_DIR} -B ${output_dir_name} -DCMAKE_BUILD_TYPE=Release \
-  -DCMAKE_SYSTEM_NAME=Android -DCMAKE_ANDROID_ARCH_ABI="armeabi-v7a" -DCMAKE_ANDROID_NDK=$ANDROID_NDK_DIR -DCMAKE_SYSTEM_VERSION=16 -DCMAKE_ANDROID_NDK_TOOLCHAIN_VERSION=clang \
-  -DDOBBY_GENERATE_SHARED=OFF -DDOBBY_DEBUG=OFF -DPlugin.Android.BionicLinkerRestriction=ON
-cmake --build ${output_dir_name} --parallel 4 --target dobby
-
-mkdir -p ${summary_output_dir_name}/android/armv7
-mv ${output_dir_name}/${android_library_name} ${summary_output_dir_name}/android/armv7/${android_library_name}
-mv ${output_dir_name}/${android_library_name} "prefab/modules/dobby/libs/android.armeabi-v7a/${android_library_name}"
-
-# build android x86
-output_dir_name=auto-build-workspace/android-x86-build
-compress_dir_array="$compress_dir_array $output_dir_name"
-echo "prepare build ${output_dir_name}"
-
-cmake -S ${SOURCE_DIR} -B ${output_dir_name} -DCMAKE_BUILD_TYPE=Release \
-  -DCMAKE_SYSTEM_NAME=Android -DCMAKE_ANDROID_ARCH_ABI="x86" -DCMAKE_ANDROID_NDK=$ANDROID_NDK_DIR -DCMAKE_ANDROID_NDK_TOOLCHAIN_VERSION=clang \
-  -DDOBBY_GENERATE_SHARED=OFF -DDOBBY_DEBUG=OFF -DPlugin.Android.BionicLinkerRestriction=ON
-cmake --build ${output_dir_name} --parallel 4 --target dobby
-
-mkdir -p ${summary_output_dir_name}/android/x86
-mv ${output_dir_name}/${android_library_name} ${summary_output_dir_name}/android/x86/${android_library_name}
-mv ${output_dir_name}/${android_library_name} "prefab/modules/dobby/libs/android.x86/${android_library_name}"
-
-# build android x86_64
-output_dir_name=auto-build-workspace/android-x86_64-build
-compress_dir_array="$compress_dir_array $output_dir_name"
-echo "prepare build ${output_dir_name}"
-
-cmake -S ${SOURCE_DIR} -B ${output_dir_name} -DCMAKE_BUILD_TYPE=Release \
-  -DCMAKE_SYSTEM_NAME=Android -DCMAKE_ANDROID_ARCH_ABI="x86_64" -DCMAKE_ANDROID_NDK=$ANDROID_NDK_DIR -DCMAKE_ANDROID_NDK_TOOLCHAIN_VERSION=clang \
-  -DDOBBY_GENERATE_SHARED=OFF -DDOBBY_DEBUG=OFF -DPlugin.Android.BionicLinkerRestriction=ON
-cmake --build ${output_dir_name} --parallel 4 --target dobby
-
-mkdir -p ${summary_output_dir_name}/android/x86_64
-mv ${output_dir_name}/${android_library_name} ${summary_output_dir_name}/android/x86_64/${android_library_name}
-#mv ${output_dir_name}/${android_library_name} "prefab/modules/dobby/libs/android.x86_64/${android_library_name}"
-
-## zip android prefab
-#mkdir -p prefab/modules/dobby/include
-#cp "include/dobby.h" "prefab/modules/dobby/include/"
-#cp "builtin-plugin/BionicLinkerRestriction/bionic_linker_restriction.h" "prefab/modules/dobby/include/"
-#cp "builtin-plugin/SymbolResolver/dobby_symbol_resolver.h" "prefab/modules/dobby/include/"
-#cp "prefab/AndroidManifest.xml" .
-#zip -r ${summary_output_dir_name}/android_prefab.aar prefab AndroidManifest.xml -x prefab/AndroidManifest.xml
-
-if [ $DOBBY_BUILD_OUTPUT_NAME ]; then
-  tar czvf ${DOBBY_BUILD_OUTPUT_NAME} ${summary_output_dir_name}
-fi
diff --git a/loader/dobby/build-workspace/prefab/AndroidManifest.xml b/loader/dobby/build-workspace/prefab/AndroidManifest.xml
deleted file mode 100644
index c7fb4f35..00000000
--- a/loader/dobby/build-workspace/prefab/AndroidManifest.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="io.github.jmpews.ndk.dobby" >
-
-    <uses-sdk
-        android:minSdkVersion="16"
-        android:targetSdkVersion="30" />
-
-</manifest>
diff --git a/loader/dobby/build-workspace/prefab/modules/dobby/libs/android.arm64-v8a/abi.json b/loader/dobby/build-workspace/prefab/modules/dobby/libs/android.arm64-v8a/abi.json
deleted file mode 100644
index 64805a3c..00000000
--- a/loader/dobby/build-workspace/prefab/modules/dobby/libs/android.arm64-v8a/abi.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
-  "abi": "arm64-v8a",
-  "api": 21,
-  "ndk": 21,
-  "stl": "c++_static"
-}
diff --git a/loader/dobby/build-workspace/prefab/modules/dobby/libs/android.armeabi-v7a/abi.json b/loader/dobby/build-workspace/prefab/modules/dobby/libs/android.armeabi-v7a/abi.json
deleted file mode 100644
index 143d3034..00000000
--- a/loader/dobby/build-workspace/prefab/modules/dobby/libs/android.armeabi-v7a/abi.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
-  "abi": "armeabi-v7a",
-  "api": 16,
-  "ndk": 21,
-  "stl": "c++_static"
-}
diff --git a/loader/dobby/build-workspace/prefab/modules/dobby/libs/android.x86/abi.json b/loader/dobby/build-workspace/prefab/modules/dobby/libs/android.x86/abi.json
deleted file mode 100644
index 00d05a42..00000000
--- a/loader/dobby/build-workspace/prefab/modules/dobby/libs/android.x86/abi.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
-  "abi": "x86",
-  "api": 16,
-  "ndk": 21,
-  "stl": "c++_static"
-}
diff --git a/loader/dobby/build-workspace/prefab/modules/dobby/libs/android.x86_64/abi.json b/loader/dobby/build-workspace/prefab/modules/dobby/libs/android.x86_64/abi.json
deleted file mode 100644
index 2adf0060..00000000
--- a/loader/dobby/build-workspace/prefab/modules/dobby/libs/android.x86_64/abi.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
-  "abi": "x86_64",
-  "api": 21,
-  "ndk": 21,
-  "stl": "c++_static"
-}
diff --git a/loader/dobby/build-workspace/prefab/modules/dobby/module.json b/loader/dobby/build-workspace/prefab/modules/dobby/module.json
deleted file mode 100644
index 5d239944..00000000
--- a/loader/dobby/build-workspace/prefab/modules/dobby/module.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
-  "export_libraries": [],
-  "android": {}
-}
diff --git a/loader/dobby/build-workspace/prefab/prefab.json b/loader/dobby/build-workspace/prefab/prefab.json
deleted file mode 100644
index ba38d7fc..00000000
--- a/loader/dobby/build-workspace/prefab/prefab.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
-  "name": "dobby",
-  "schema_version": 1,
-  "dependencies": []
-}
diff --git a/loader/dobby/builtin-plugin/ApplicationEventMonitor/MGCopyAnswerMonitor.cc b/loader/dobby/builtin-plugin/ApplicationEventMonitor/MGCopyAnswerMonitor.cc
deleted file mode 100644
index 275a25be..00000000
--- a/loader/dobby/builtin-plugin/ApplicationEventMonitor/MGCopyAnswerMonitor.cc
+++ /dev/null
@@ -1,46 +0,0 @@
-#include "./dobby_monitor.h"
-
-#include <dlfcn.h>
-#include <CoreFoundation/CoreFoundation.h>
-
-#define LOG_TAG "MGCopyAnswer"
-
-static uintptr_t getCallFirstArg(RegisterContext *ctx) {
-  uintptr_t result;
-#if defined(_M_X64) || defined(__x86_64__)
-#if defined(_WIN32)
-  result = ctx->general.regs.rcx;
-#else
-  result = ctx->general.regs.rdi;
-#endif
-#elif defined(__arm64__) || defined(__aarch64__)
-  result = ctx->general.regs.x0;
-#elif defined(__arm__)
-  result = ctx->general.regs.r0;
-#else
-#error "Not Support Architecture."
-#endif
-  return result;
-}
-
-void common_handler(RegisterContext *ctx, const HookEntryInfo *info) {
-  CFStringRef key_ = 0;
-  key_ = (CFStringRef)getCallFirstArg(ctx);
-
-  char str_key[256] = {0};
-  CFStringGetCString(key_, str_key, 256, kCFStringEncodingUTF8);
-  LOG("[#] MGCopyAnswer:: %s\n", str_key);
-}
-
-#if 0
-__attribute__((constructor)) static void ctor() {
-  void *lib               = dlopen("/usr/lib/libMobileGestalt.dylib", RTLD_NOW);
-  void *MGCopyAnswer_addr = DobbySymbolResolver("libMobileGestalt.dylib", "MGCopyAnswer");
-  
-  sleep(1);
-
-  dobby_enable_near_branch_trampoline();
-  DobbyInstrument((void *)MGCopyAnswer_addr, common_handler);
-  dobby_disable_near_branch_trampoline();
-}
-#endif
diff --git a/loader/dobby/builtin-plugin/ApplicationEventMonitor/dobby_monitor.h b/loader/dobby/builtin-plugin/ApplicationEventMonitor/dobby_monitor.h
deleted file mode 100644
index 0332b493..00000000
--- a/loader/dobby/builtin-plugin/ApplicationEventMonitor/dobby_monitor.h
+++ /dev/null
@@ -1,28 +0,0 @@
-#ifndef DOBBY_MONITOR_H
-#define DOBBY_MONITOR_H
-
-#include <stdlib.h> /* getenv */
-#include <stdio.h>
-#include <string.h>
-
-#include <iostream>
-#include <fstream>
-
-#include <set>
-#include <unordered_map>
-
-#include "dobby.h"
-
-#define LOG printf
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-int DobbyHook(void *function_address, void *replace_call, void **origin_call);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif // !1DOBBY_MONITOR
diff --git a/loader/dobby/builtin-plugin/ApplicationEventMonitor/dynamic_loader_monitor.cc b/loader/dobby/builtin-plugin/ApplicationEventMonitor/dynamic_loader_monitor.cc
deleted file mode 100644
index 5de42843..00000000
--- a/loader/dobby/builtin-plugin/ApplicationEventMonitor/dynamic_loader_monitor.cc
+++ /dev/null
@@ -1,94 +0,0 @@
-#include <stdlib.h> /* getenv */
-#include <stdio.h>
-#include <string.h>
-
-#include <iostream>
-#include <fstream>
-
-#include <set>
-#include <unordered_map>
-
-#include <dlfcn.h>
-#include <sys/param.h>
-
-#include "dobby.h"
-
-#include "common_header.h"
-
-#define LOG_TAG "DynamicLoaderMonitor"
-
-std::unordered_map<void *, const char *> traced_dlopen_handle_list;
-
-static void *(*orig_dlopen)(const char *__file, int __mode);
-static void *fake_dlopen(const char *__file, int __mode) {
-  void *result = orig_dlopen(__file, __mode);
-  if (result != NULL && __file) {
-    char *traced_filename = (char *)malloc(MAXPATHLEN);
-    // FIXME: strncpy
-    strcpy(traced_filename, __file);
-    LOG(1, "[-] dlopen handle: %s", __file);
-    traced_dlopen_handle_list.insert(std::make_pair(result, (const char *)traced_filename));
-  }
-  return result;
-}
-
-static void *(*orig_loader_dlopen)(const char *filename, int flags, const void *caller_addr);
-static void *fake_loader_dlopen(const char *filename, int flags, const void *caller_addr) {
-  void *result = orig_loader_dlopen(filename, flags, caller_addr);
-  if (result != NULL) {
-    char *traced_filename = (char *)malloc(MAXPATHLEN);
-    // FIXME: strncpy
-    strcpy(traced_filename, filename);
-    LOG(1, "[-] dlopen handle: %s", filename);
-    traced_dlopen_handle_list.insert(std::make_pair(result, (const char *)traced_filename));
-  }
-  return result;
-}
-
-static const char *get_traced_filename(void *handle, bool removed) {
-  std::unordered_map<void *, const char *>::iterator it;
-  it = traced_dlopen_handle_list.find(handle);
-  if (it != traced_dlopen_handle_list.end()) {
-    if (removed)
-      traced_dlopen_handle_list.erase(it);
-    return it->second;
-  }
-  return NULL;
-}
-
-static void *(*orig_dlsym)(void *__handle, const char *__symbol);
-static void *fake_dlsym(void *__handle, const char *__symbol) {
-  const char *traced_filename = get_traced_filename(__handle, false);
-  if (traced_filename) {
-    LOG(1, "[-] dlsym: %s, symbol: %s", traced_filename, __symbol);
-  }
-  return orig_dlsym(__handle, __symbol);
-}
-
-static int (*orig_dlclose)(void *__handle);
-static int fake_dlclose(void *__handle) {
-  const char *traced_filename = get_traced_filename(__handle, true);
-  if (traced_filename) {
-    LOG(1, "[-] dlclose: %s", traced_filename);
-    free((void *)traced_filename);
-  }
-  return orig_dlclose(__handle);
-}
-
-#if 0
-__attribute__((constructor)) static void ctor() {
-#if defined(__ANDROID__)
-#if 0
-  void *dl              = dlopen("libdl.so", RTLD_LAZY);
-  void *__loader_dlopen = dlsym(dl, "__loader_dlopen");
-#endif
-  DobbyHook((void *)DobbySymbolResolver(NULL, "__loader_dlopen"), (void *)fake_loader_dlopen,
-            (void **)&orig_loader_dlopen);
-#else
-  DobbyHook((void *)DobbySymbolResolver(NULL, "dlopen"), (void *)fake_dlopen, (void **)&orig_dlopen);
-#endif
-
-  DobbyHook((void *)dlsym, (void *)fake_dlsym, (void **)&orig_dlsym);
-  DobbyHook((void *)dlclose, (void *)fake_dlclose, (void **)&orig_dlclose);
-}
-#endif
diff --git a/loader/dobby/builtin-plugin/ApplicationEventMonitor/file_operation_monitor.cc b/loader/dobby/builtin-plugin/ApplicationEventMonitor/file_operation_monitor.cc
deleted file mode 100644
index d4f09ca5..00000000
--- a/loader/dobby/builtin-plugin/ApplicationEventMonitor/file_operation_monitor.cc
+++ /dev/null
@@ -1,97 +0,0 @@
-#include <stdlib.h> /* getenv */
-#include <stdio.h>
-#include <string.h>
-
-#include <iostream>
-#include <fstream>
-
-#include <set>
-#include <unordered_map>
-
-#include <sys/param.h>
-
-#include "./dobby_monitor.h"
-
-std::unordered_map<FILE *, const char *> *TracedFopenFileList;
-
-FILE *(*orig_fopen)(const char *filename, const char *mode);
-FILE *fake_fopen(const char *filename, const char *mode) {
-  FILE *result = NULL;
-  result = orig_fopen(filename, mode);
-  if (result != NULL) {
-    char *traced_filename = (char *)malloc(MAXPATHLEN);
-    // FIXME: strncpy
-    strcpy(traced_filename, filename);
-    std::cout << "[-] trace file: " << filename << std::endl;
-    TracedFopenFileList->insert(std::make_pair(result, traced_filename));
-  }
-  return result;
-}
-
-static const char *GetFileDescriptorTraced(FILE *stream, bool removed) {
-  std::unordered_map<FILE *, const char *>::iterator it;
-  it = TracedFopenFileList->find(stream);
-  if (it != TracedFopenFileList->end()) {
-    if (removed)
-      TracedFopenFileList->erase(it);
-    return it->second;
-  }
-  return NULL;
-}
-
-size_t (*orig_fread)(void *ptr, size_t size, size_t count, FILE *stream);
-size_t fake_fread(void *ptr, size_t size, size_t count, FILE *stream) {
-  const char *file_name = GetFileDescriptorTraced(stream, false);
-  if (file_name) {
-    LOG("[-] fread: %s, buffer: %p\n", file_name, ptr);
-  }
-  return orig_fread(ptr, size, count, stream);
-}
-
-size_t (*orig_fwrite)(const void *ptr, size_t size, size_t count, FILE *stream);
-size_t fake_fwrite(void *ptr, size_t size, size_t count, FILE *stream) {
-  const char *file_name = GetFileDescriptorTraced(stream, false);
-  if (file_name) {
-    LOG("[-] fwrite %s\n    from %p\n", file_name, ptr);
-  }
-  return orig_fwrite(ptr, size, count, stream);
-}
-
-__attribute__((constructor)) void __main() {
-
-  TracedFopenFileList = new std::unordered_map<FILE *, const char *>();
-
-#if defined(__APPLE__)
-#include <TargetConditionals.h>
-#if (TARGET_OS_IPHONE || TARGET_OS_MAC)
-  std::ifstream file;
-  file.open("/System/Library/CoreServices/SystemVersion.plist");
-  std::cout << file.rdbuf();
-#endif
-#endif
-
-  //   DobbyHook((void *)fopen, (void *)fake_fopen, (void **)&orig_fopen);
-  //   DobbyHook((void *)fwrite, (void *)fake_fwrite, (void **)&orig_fwrite);
-  //   DobbyHook((void *)fread, (void *)fake_fread, (void **)&orig_fread);
-
-  char *home = getenv("HOME");
-  char *subdir = (char *)"/Library/Caches/";
-
-  std::string filePath = std::string(home) + std::string(subdir) + "temp.log";
-
-  char buffer[64];
-  memset(buffer, 'B', 64);
-
-  FILE *fd = fopen(filePath.c_str(), "w+");
-  if (!fd)
-    std::cout << "[!] open " << filePath << "failed!\n";
-
-  fwrite(buffer, 64, 1, fd);
-  fflush(fd);
-  fseek(fd, 0, SEEK_SET);
-  memset(buffer, 0, 64);
-
-  fread(buffer, 64, 1, fd);
-
-  return;
-}
diff --git a/loader/dobby/builtin-plugin/ApplicationEventMonitor/memory_operation_instrument.cc b/loader/dobby/builtin-plugin/ApplicationEventMonitor/memory_operation_instrument.cc
deleted file mode 100644
index 7604e68e..00000000
--- a/loader/dobby/builtin-plugin/ApplicationEventMonitor/memory_operation_instrument.cc
+++ /dev/null
@@ -1,58 +0,0 @@
-#include "./dobby_monitor.h"
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-
-static uintptr_t getCallFirstArg(RegisterContext *ctx) {
-  uintptr_t result;
-#if defined(_M_X64) || defined(__x86_64__)
-#if defined(_WIN32)
-  result = ctx->general.regs.rcx;
-#else
-  result = ctx->general.regs.rdi;
-#endif
-#elif defined(__arm64__) || defined(__aarch64__)
-  result = ctx->general.regs.x0;
-#elif defined(__arm__)
-  result = ctx->general.regs.r0;
-#else
-#error "Not Support Architecture."
-#endif
-  return result;
-}
-
-void format_integer_manually(char *buf, uint64_t integer) {
-  int tmp = 0;
-  for (tmp = (int)integer; tmp > 0; tmp = (tmp >> 4)) {
-    buf += (tmp % 16);
-    buf--;
-  }
-}
-
-// [ATTENTION]:
-// printf will call 'malloc' internally, and will crash in a loop.
-// so, use 'puts' is a better choice.
-void malloc_handler(RegisterContext *ctx, const HookEntryInfo *info) {
-  size_t size_ = 0;
-  size_ = getCallFirstArg(ctx);
-  char *buffer_ = (char *)"[-] function malloc first arg: 0x00000000.\n";
-  format_integer_manually(strchr(buffer_, '.') - 1, size_);
-  puts(buffer_);
-}
-
-void free_handler(RegisterContext *ctx, const HookEntryInfo *info) {
-  uintptr_t mem_ptr;
-
-  mem_ptr = getCallFirstArg(ctx);
-
-  char *buffer = (char *)"[-] function free first arg: 0x00000000.\n";
-  format_integer_manually(strchr(buffer, '.') - 1, mem_ptr);
-  puts(buffer);
-}
-
-__attribute__((constructor)) static void ctor() {
-  //    DobbyInstrument((void *)mmap, malloc_handler);
-  //    DobbyInstrument((void *)free, free_handler);
-  return;
-}
diff --git a/loader/dobby/builtin-plugin/ApplicationEventMonitor/posix_file_descriptor_operation_monitor.cc b/loader/dobby/builtin-plugin/ApplicationEventMonitor/posix_file_descriptor_operation_monitor.cc
deleted file mode 100644
index 4aaa2f4d..00000000
--- a/loader/dobby/builtin-plugin/ApplicationEventMonitor/posix_file_descriptor_operation_monitor.cc
+++ /dev/null
@@ -1,120 +0,0 @@
-#include <stdlib.h> /* getenv */
-#include <stdio.h>
-#include <string.h>
-
-#include <unistd.h>
-#include <fcntl.h>
-#include <stdarg.h>
-
-#include <dlfcn.h>
-
-#include <iostream>
-#include <fstream>
-
-#include <set>
-#include <unordered_map>
-
-#include <sys/param.h>
-
-#include "dobby.h"
-#include "common_header.h"
-
-#define LOG_TAG "PosixFileOperationMonitor"
-
-std::unordered_map<int, const char *> *posix_file_descriptors;
-
-int (*orig_open)(const char *pathname, int flags, ...);
-int fake_open(const char *pathname, int flags, ...) {
-  mode_t mode = 0;
-  if (flags & O_CREAT) {
-    va_list args;
-    va_start(args, flags);
-    mode = (mode_t)va_arg(args, int);
-    va_end(args);
-  }
-
-  int result = orig_open(pathname, flags, mode);
-  if (result != -1) {
-    char *traced_filename = (char *)malloc(MAXPATHLEN);
-    // FIXME: strncpy
-    strcpy(traced_filename, pathname);
-    LOG(1, "[-] trace open handle: %s", pathname);
-
-    if (posix_file_descriptors == NULL) {
-      posix_file_descriptors = new std::unordered_map<int, const char *>();
-    }
-    posix_file_descriptors->insert(std::make_pair(result, (const char *)traced_filename));
-  }
-  return result;
-}
-
-int (*orig___open)(const char *pathname, int flags, int mode);
-int fake___open(const char *pathname, int flags, int mode) {
-  char *traced_filename = NULL;
-  if (pathname) {
-    traced_filename = (char *)malloc(MAXPATHLEN);
-    // FIXME: strncpy
-    strcpy(traced_filename, pathname);
-    LOG(1, "[-] trace open handle: ", pathname);
-  }
-  int result = orig___open(pathname, flags, mode);
-  if (result != -1) {
-    if (posix_file_descriptors == NULL) {
-      posix_file_descriptors = new std::unordered_map<int, const char *>();
-    }
-    posix_file_descriptors->insert(std::make_pair(result, (const char *)traced_filename));
-  }
-  return result;
-}
-
-static const char *get_traced_filename(int fd, bool removed) {
-  if (posix_file_descriptors == NULL)
-    return NULL;
-  std::unordered_map<int, const char *>::iterator it;
-  it = posix_file_descriptors->find(fd);
-  if (it != posix_file_descriptors->end()) {
-    if (removed)
-      posix_file_descriptors->erase(it);
-    return it->second;
-  }
-  return NULL;
-}
-
-ssize_t (*orig_read)(int fd, void *buf, size_t count);
-ssize_t fake_read(int fd, void *buf, size_t count) {
-  const char *traced_filename = get_traced_filename(fd, false);
-  if (traced_filename) {
-    LOG(1, "[-] read: %s, buffer: %p, size: %zu", traced_filename, buf, count);
-  }
-  return orig_read(fd, buf, count);
-}
-
-ssize_t (*orig_write)(int fd, const void *buf, size_t count);
-ssize_t fake_write(int fd, const void *buf, size_t count) {
-  const char *traced_filename = get_traced_filename(fd, false);
-  if (traced_filename) {
-    LOG(1, "[-] write: %s, buffer: %p, size: %zu", traced_filename, buf, count);
-  }
-  return orig_write(fd, buf, count);
-}
-int (*orig_close)(int fd);
-int fake_close(int fd) {
-  const char *traced_filename = get_traced_filename(fd, true);
-  if (traced_filename) {
-    LOG(1, "[-] close: %s", traced_filename);
-    free((void *)traced_filename);
-  }
-  return orig_close(fd);
-}
-
-#if 0
-__attribute__((constructor)) static void ctor() {
-  DobbyHook((void *)DobbySymbolResolver(NULL, "open"), (void *)fake_open, (void **)&orig_open);
-
-  DobbyHook((void *)DobbySymbolResolver(NULL, "write"), (void *)fake_write, (void **)&orig_write);
-
-  DobbyHook((void *)DobbySymbolResolver(NULL, "read"), (void *)fake_read, (void **)&orig_read);
-
-  DobbyHook((void *)DobbySymbolResolver(NULL, "close"), (void *)fake_close, (void **)&orig_close);
-}
-#endif
diff --git a/loader/dobby/builtin-plugin/ApplicationEventMonitor/posix_socket_network_monitor.cc b/loader/dobby/builtin-plugin/ApplicationEventMonitor/posix_socket_network_monitor.cc
deleted file mode 100644
index 8314a189..00000000
--- a/loader/dobby/builtin-plugin/ApplicationEventMonitor/posix_socket_network_monitor.cc
+++ /dev/null
@@ -1,57 +0,0 @@
-#include <stdlib.h> /* getenv */
-#include <stdio.h>
-#include <string.h>
-
-#include <iostream>
-#include <fstream>
-
-#include <set>
-
-#include <unordered_map>
-
-#include <sys/types.h>
-#include <sys/socket.h>
-
-std::unordered_map<int, const char *> posix_socket_file_descriptors;
-
-int (*orig_bind)(int sockfd, const struct sockaddr *addr, socklen_t addrlen);
-int fake_bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen) {
-}
-
-static const char *get_traced_socket(int fd, bool removed) {
-  std::unordered_map<int, const char *>::iterator it;
-  it = posix_socket_file_descriptors.find(fd);
-  if (it != posix_socket_file_descriptors.end()) {
-    if (removed)
-      posix_socket_file_descriptors.erase(it);
-    return it->second;
-  }
-  return NULL;
-}
-
-int (*orig_connect)(int sockfd, const struct sockaddr *addr, socklen_t addrlen);
-int fake_connect(int sockfd, const struct sockaddr *addr, socklen_t addrlen) {
-  const char *traced_socket = get_traced_socket(sockfd, false);
-  if (traced_socket) {
-    LOG(1, "[-] connect: %s\n", traced_socket);
-  }
-  return orig_connect(sockfd, addr, addrlen);
-}
-
-ssize_t (*orig_send)(int sockfd, const void *buf, size_t len, int flags);
-ssize_t fake_send(int sockfd, const void *buf, size_t len, int flags) {
-  const char *traced_socket = get_traced_socket(sockfd, false);
-  if (traced_socket) {
-    LOG(1, "[-] send: %s, buf: %p, len: %zu\n", traced_socket, buf, len);
-  }
-  return orig_send(sockfd, buf, len, flags);
-}
-
-ssize_t (*orig_recv)(int sockfd, void *buf, size_t len, int flags);
-ssize_t fake_recv(int sockfd, void *buf, size_t len, int flags) {
-  const char *traced_socket = get_traced_socket(sockfd, false);
-  if (traced_socket) {
-    LOG(1, "[-] recv: %s, buf: %p, len: %zu\n", traced_socket, buf, len);
-  }
-  return orig_recv(sockfd, buf, len, flags);
-}
\ No newline at end of file
diff --git a/loader/dobby/builtin-plugin/BionicLinkerRestriction/bionic_linker_restriction.cc b/loader/dobby/builtin-plugin/BionicLinkerRestriction/bionic_linker_restriction.cc
deleted file mode 100644
index 1fdba7ba..00000000
--- a/loader/dobby/builtin-plugin/BionicLinkerRestriction/bionic_linker_restriction.cc
+++ /dev/null
@@ -1,197 +0,0 @@
-#include "bionic_linker_restriction.h"
-
-#include <elf.h>
-#include <jni.h>
-#include <string>
-#include <dlfcn.h>
-#include <link.h>
-#include <sys/mman.h>
-
-#include <unistd.h>
-#include <fcntl.h>
-
-#include <unordered_map>
-#include <vector>
-#include <set>
-
-#include "dobby.h"
-#include "dobby_symbol_resolver.h"
-
-#include "common_header.h"
-
-#undef LOG_TAG
-#define LOG_TAG "AndroidLinkerRestriction"
-
-#undef Q
-#define Q 29
-// impl at "dobby_symbol_resolver.cc"
-extern void *resolve_elf_internal_symbol(const char *library_name, const char *symbol_name);
-
-#include <sys/system_properties.h>
-static int get_android_system_version() {
-  char os_version_str[PROP_VALUE_MAX + 1];
-  __system_property_get("ro.build.version.release", os_version_str);
-  int os_version_int = atoi(os_version_str);
-  return os_version_int;
-}
-
-static const char *get_android_linker_path() {
-#if __LP64__
-  if (get_android_system_version() >= Q) {
-    return (const char *)"/apex/com.android.runtime/bin/linker64";
-  } else {
-    return (const char *)"/system/bin/linker64";
-  }
-#else
-  if (get_android_system_version() >= Q) {
-    return (const char *)"/apex/com.android.runtime/bin/linker";
-  } else {
-    return (const char *)"/system/bin/linker";
-  }
-#endif
-}
-
-PUBLIC void *linker_dlopen(const char *filename, int flag) {
-  typedef void *(*__loader_dlopen_t)(const char *filename, int flags, const void *caller_addr);
-  static __loader_dlopen_t __loader_dlopen = NULL;
-  if (!__loader_dlopen)
-    __loader_dlopen = (__loader_dlopen_t)DobbySymbolResolver(NULL, "__loader_dlopen");
-
-  // fake caller address
-  void *open_ptr = dlsym(RTLD_DEFAULT, "open");
-  return __loader_dlopen(filename, flag, (const void *)open_ptr);
-}
-
-std::vector<soinfo_t> linker_solist;
-std::vector<soinfo_t> linker_get_solist() {
-  if (!linker_solist.empty()) {
-    linker_solist.clear();
-  }
-
-  static soinfo_t (*solist_get_head)() = NULL;
-  if (!solist_get_head)
-    solist_get_head =
-        (soinfo_t(*)())resolve_elf_internal_symbol(get_android_linker_path(), "__dl__Z15solist_get_headv");
-
-  static soinfo_t (*solist_get_somain)() = NULL;
-  if (!solist_get_somain)
-    solist_get_somain =
-        (soinfo_t(*)())resolve_elf_internal_symbol(get_android_linker_path(), "__dl__Z17solist_get_somainv");
-
-  static addr_t *solist_head = NULL;
-  if (!solist_head)
-    solist_head = (addr_t *)solist_get_head();
-
-  static addr_t somain = 0;
-  if (!somain)
-    somain = (addr_t)solist_get_somain();
-
-    // Generate the name for an offset.
-#define PARAM_OFFSET(type_, member_) __##type_##__##member_##__offset_
-#define STRUCT_OFFSET PARAM_OFFSET
-  int STRUCT_OFFSET(solist, next) = 0;
-  for (size_t i = 0; i < 1024 / sizeof(void *); i++) {
-    if (*(addr_t *)((addr_t)solist_head + i * sizeof(void *)) == somain) {
-      STRUCT_OFFSET(solist, next) = i * sizeof(void *);
-      break;
-    }
-  }
-
-  linker_solist.push_back(solist_head);
-
-  addr_t sonext = 0;
-  sonext = *(addr_t *)((addr_t)solist_head + STRUCT_OFFSET(solist, next));
-  while (sonext) {
-    linker_solist.push_back((void *)sonext);
-    sonext = *(addr_t *)((addr_t)sonext + STRUCT_OFFSET(solist, next));
-  }
-
-  return linker_solist;
-}
-
-char *linker_soinfo_get_realpath(soinfo_t soinfo) {
-  static char *(*_get_realpath)(soinfo_t) = NULL;
-  if (!_get_realpath)
-    _get_realpath =
-        (char *(*)(soinfo_t))resolve_elf_internal_symbol(get_android_linker_path(), "__dl__ZNK6soinfo12get_realpathEv");
-  return _get_realpath(soinfo);
-}
-
-uintptr_t linker_soinfo_to_handle(soinfo_t soinfo) {
-  static uintptr_t (*_linker_soinfo_to_handle)(soinfo_t) = NULL;
-  if (!_linker_soinfo_to_handle)
-    _linker_soinfo_to_handle =
-        (uintptr_t(*)(soinfo_t))resolve_elf_internal_symbol(get_android_linker_path(), "__dl__ZN6soinfo9to_handleEv");
-  return _linker_soinfo_to_handle(soinfo);
-}
-
-typedef void *android_namespace_t;
-android_namespace_t linker_soinfo_get_primary_namespace(soinfo_t soinfo) {
-  static android_namespace_t (*_get_primary_namespace)(soinfo_t) = NULL;
-  if (!_get_primary_namespace)
-    _get_primary_namespace = (android_namespace_t(*)(soinfo_t))resolve_elf_internal_symbol(
-        get_android_linker_path(), "__dl__ZN6soinfo21get_primary_namespaceEv");
-  return _get_primary_namespace(soinfo);
-}
-
-void linker_iterate_soinfo(int (*cb)(soinfo_t soinfo)) {
-  auto solist = linker_get_solist();
-  for (auto it = solist.begin(); it != solist.end(); it++) {
-    int ret = cb(*it);
-    if (ret != 0)
-      break;
-  }
-}
-
-static int iterate_soinfo_cb(soinfo_t soinfo) {
-  android_namespace_t ns = NULL;
-  ns = linker_soinfo_get_primary_namespace(soinfo);
-  LOG(1, "lib: %s", linker_soinfo_get_realpath(soinfo));
-
-  // set is_isolated_ as false
-  // no need for this actually
-  int STRUCT_OFFSET(android_namespace_t, is_isolated_) = 0x8;
-  *(uint8_t *)((addr_t)ns + STRUCT_OFFSET(android_namespace_t, is_isolated_)) = false;
-
-  std::vector<std::string> ld_library_paths = {"/system/lib64", "/sytem/lib"};
-  if (get_android_system_version() >= Q) {
-    ld_library_paths.push_back("/apex/com.android.runtime/lib64");
-    ld_library_paths.push_back("/apex/com.android.runtime/lib");
-  }
-  int STRUCT_OFFSET(android_namespace_t, ld_library_paths_) = 0x10;
-  if (*(void **)((addr_t)ns + STRUCT_OFFSET(android_namespace_t, ld_library_paths_))) {
-    std::vector<std::string> orig_ld_library_paths =
-        *(std::vector<std::string> *)((addr_t)ns + STRUCT_OFFSET(android_namespace_t, ld_library_paths_));
-    orig_ld_library_paths.insert(orig_ld_library_paths.end(), ld_library_paths.begin(), ld_library_paths.end());
-
-    // remove duplicates
-    {
-      std::set<std::string> paths(orig_ld_library_paths.begin(), orig_ld_library_paths.end());
-      orig_ld_library_paths.assign(paths.begin(), paths.end());
-    }
-  } else {
-    *(std::vector<std::string> *)((addr_t)ns + STRUCT_OFFSET(android_namespace_t, ld_library_paths_)) =
-        std::move(ld_library_paths);
-  }
-  return 0;
-}
-
-bool (*orig_linker_namespace_is_is_accessible)(android_namespace_t ns, const std::string &file);
-bool linker_namespace_is_is_accessible(android_namespace_t ns, const std::string &file) {
-  LOG(1, "check %s", file.c_str());
-  return true;
-  return orig_linker_namespace_is_is_accessible(ns, file);
-}
-
-void linker_disable_namespace_restriction() {
-  linker_iterate_soinfo(iterate_soinfo_cb);
-
-  // no need for this actually
-  void *linker_namespace_is_is_accessible_ptr = resolve_elf_internal_symbol(
-      get_android_linker_path(), "__dl__ZN19android_namespace_t13is_accessibleERKNSt3__112basic_"
-                                 "stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEE");
-  DobbyHook(linker_namespace_is_is_accessible_ptr, (void *)linker_namespace_is_is_accessible,
-            (void **)&orig_linker_namespace_is_is_accessible);
-
-  LOG(1, "disable namespace restriction done");
-}
diff --git a/loader/dobby/builtin-plugin/BionicLinkerRestriction/bionic_linker_restriction.h b/loader/dobby/builtin-plugin/BionicLinkerRestriction/bionic_linker_restriction.h
deleted file mode 100644
index bf192dd6..00000000
--- a/loader/dobby/builtin-plugin/BionicLinkerRestriction/bionic_linker_restriction.h
+++ /dev/null
@@ -1,26 +0,0 @@
-#ifndef LINKER_RESTRICTION_H
-#define LINKER_RESTRICTION_H
-
-#include <stdint.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef void *soinfo_t;
-
-soinfo_t linker_dlopen(const char *filename, int flag);
-
-char *linker_soinfo_get_realpath(soinfo_t soinfo);
-
-uintptr_t linker_soinfo_to_handle(soinfo_t soinfo);
-
-void linker_iterate_soinfo(int (*cb)(soinfo_t soinfo));
-
-void linker_disable_namespace_restriction();
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
\ No newline at end of file
diff --git a/loader/dobby/builtin-plugin/BionicLinkerRestriction/linker_restriction_demo.cc b/loader/dobby/builtin-plugin/BionicLinkerRestriction/linker_restriction_demo.cc
deleted file mode 100644
index eb96607a..00000000
--- a/loader/dobby/builtin-plugin/BionicLinkerRestriction/linker_restriction_demo.cc
+++ /dev/null
@@ -1,36 +0,0 @@
-#include "dobby.h"
-
-#include "bionic_linker_restriction.h"
-
-#include "logging/logging.h"
-
-#include <dlfcn.h>
-
-#define LOG_TAG "AndroidLinkerRestriction"
-
-__attribute__((constructor)) static void ctor() {
-  const char *lib = NULL;
-
-#if defined(__LP64__)
-  lib = "/system/lib64/libandroid_runtime.so";
-#else
-  lib = "/system/lib/libandroid_runtime.so";
-#endif
-
-  void *vm = NULL;
-
-  vm = DobbySymbolResolver(lib, "_ZN7android14AndroidRuntime7mJavaVME");
-  LOG(1, "DobbySymbolResolver::vm %p", vm);
-
-#if 0
-  linker_disable_namespace_restriction();
-  void *handle = NULL;
-  handle       = dlopen(lib, RTLD_LAZY);
-  vm           = dlsym(handle, "_ZN7android14AndroidRuntime7mJavaVME");
-#else
-  void *handle = NULL;
-  handle = linker_dlopen(lib, RTLD_LAZY);
-  vm = dlsym(handle, "_ZN7android14AndroidRuntime7mJavaVME");
-#endif
-  LOG(1, "vm %p", vm);
-}
diff --git a/loader/dobby/builtin-plugin/Dyld2HideLibrary/CMakeLists.txt b/loader/dobby/builtin-plugin/Dyld2HideLibrary/CMakeLists.txt
deleted file mode 100644
index ccab875b..00000000
--- a/loader/dobby/builtin-plugin/Dyld2HideLibrary/CMakeLists.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-add_library(dyld2_hide_library
-  dyld2_hide_library.cc
-  )
\ No newline at end of file
diff --git a/loader/dobby/builtin-plugin/Dyld2HideLibrary/dyld2_hide_library.cc b/loader/dobby/builtin-plugin/Dyld2HideLibrary/dyld2_hide_library.cc
deleted file mode 100644
index c20b5bce..00000000
--- a/loader/dobby/builtin-plugin/Dyld2HideLibrary/dyld2_hide_library.cc
+++ /dev/null
@@ -1,136 +0,0 @@
-#include "Dyld2HideLibrary/dyld2_hide_library.h"
-
-#include <mach-o/dyld.h>
-#include <mach-o/loader.h>
-#include <mach-o/nlist.h>
-#include <mach-o/dyld_images.h>
-
-#include <stdint.h>
-#include <stdio.h>
-
-#include <mach/mach.h>
-
-#include <string.h>
-
-#include <vector>
-
-#include "dobby_internal.h"
-
-typedef void ImageLoader;
-
-typedef void ImageLoaderMachO;
-
-static void *(*removeImageFromAllImages)(const struct mach_header *mh) = NULL;
-
-static char *(*ImageLoader__getShortName)(ImageLoader *loader) = NULL;
-
-static struct mach_header *(*ImageLoaderMachO__machHeader)(ImageLoaderMachO *loader) = NULL;
-
-static std::vector<ImageLoader *> *sAllImages = NULL;
-
-std::vector<char *> *g_prepare_remove_array;
-
-static int dobby_hide_library_internal(const char *library_name) {
-  if (removeImageFromAllImages == NULL) {
-    removeImageFromAllImages =
-        (decltype(removeImageFromAllImages))DobbySymbolResolver("dyld", "__Z24removeImageFromAllImagesPK11mach_header");
-  }
-
-  if (ImageLoader__getShortName == NULL) {
-    ImageLoader__getShortName =
-        (decltype(ImageLoader__getShortName))DobbySymbolResolver("dyld", "__ZNK11ImageLoader12getShortNameEv");
-  }
-
-  if (ImageLoaderMachO__machHeader == NULL) {
-    ImageLoaderMachO__machHeader =
-        (decltype(ImageLoaderMachO__machHeader))DobbySymbolResolver("dyld", "__ZNK16ImageLoaderMachO10machHeaderEv");
-  }
-
-  if (sAllImages == NULL)
-    sAllImages = (decltype(sAllImages))DobbySymbolResolver("dyld", "__ZN4dyldL10sAllImagesE");
-
-#if 0
-  if (dyld3__AllImages__imageLoadAddressByIndex == NULL) {
-    dyld3__AllImages__imageLoadAddressByIndex = (decltype(removeImageFromAllImages))DobbySymbolResolver(
-        "libdyld.dylib", "__ZNK5dyld39AllImages23imageLoadAddressByIndexEj");
-  }
-
-  if (dyld3_sAllImages == NULL)
-    dyld3_sAllImages = (decltype(dyld3_sAllImages))DobbySymbolResolver("libdyld.dylib", "__ZN5dyld310gAllImagesE");
-#endif
-
-#if 0
-  typedef void AllImages;
-  static void(*AllImages__decRefCount)(AllImages *_this, const struct mach_header *mh) = NULL;
-  if(AllImages__decRefCount == NULL) {
-    AllImages__decRefCount = (decltype(AllImages__decRefCount))DobbySymbolResolver("libdyld.dylib", "__ZN5dyld39AllImages11decRefCountEPK11mach_header");
-  }
-  
-  static AllImages *gAllImages = NULL;
-  if(gAllImages == NULL) {
-    gAllImages = (decltype(gAllImages))DobbySymbolResolver("libdyld.dylib", "__ZN5dyld310gAllImagesE");
-  }
-#endif
-
-  //  int count = _dyld_image_count();
-  //  for (int i = 0; i < count; i++) {
-  //    const char *name       = _dyld_get_image_name(i);
-  //    const char *image_name = strrchr(name, '/');
-  //    if (image_name == NULL) {
-  //      continue;
-  //    }
-  //    image_name += 1;
-  //    if (strcmp(image_name, library_name) == 0) {
-  //      const struct mach_header *header = _dyld_get_image_header(i);
-  //      AllImages__decRefCount(gAllImages, header);
-  //      break;
-  //    }
-  //  }
-
-  for (std::vector<ImageLoader *>::iterator it = sAllImages->begin(); it != sAllImages->end(); it++) {
-    char *name = ImageLoader__getShortName(*it);
-    // LOG(2, "load library : %s", name);
-    if (strcmp(name, library_name) == 0) {
-      LOG(2, "strip load library : %s", library_name);
-      struct mach_header *header = ImageLoaderMachO__machHeader(*it);
-      removeImageFromAllImages(header);
-      sAllImages->erase(it);
-      break;
-    }
-  }
-
-  return 0;
-}
-
-PUBLIC int dyld2_hide_library(const char *library_name) {
-#if 1
-  dobby_hide_library_internal(library_name);
-  return 0;
-#endif
-
-  if (g_prepare_remove_array == NULL)
-    g_prepare_remove_array = new std::vector<char *>();
-  g_prepare_remove_array->push_back((char *)library_name);
-}
-
-static void common_handler(RegisterContext *ctx, const HookEntryInfo *info) {
-  if (g_prepare_remove_array == nullptr)
-    return;
-  for (auto name : *g_prepare_remove_array) {
-    dobby_hide_library_internal(name);
-  }
-}
-
-__attribute__((constructor)) static void ctor() {
-#if 0
-  void *dyld__notifyMonitoringDyldMain = DobbySymbolResolver("dyld", "__ZN4dyldL24notifyMonitoringDyldMainEv");
-  DobbyInstrument(dyld__notifyMonitoringDyldMain, common_handler);
-#endif
-
-  log_switch_to_syslog();
-
-#if defined(DOBBY_DEBUG) && 0
-  dyld2_hide_library("Dobby");
-  dyld2_hide_library("liblangid.dylib");
-#endif
-}
diff --git a/loader/dobby/builtin-plugin/Dyld2HideLibrary/dyld2_hide_library.h b/loader/dobby/builtin-plugin/Dyld2HideLibrary/dyld2_hide_library.h
deleted file mode 100644
index be9e88ed..00000000
--- a/loader/dobby/builtin-plugin/Dyld2HideLibrary/dyld2_hide_library.h
+++ /dev/null
@@ -1,11 +0,0 @@
-#pragma once
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-int dyld2_hide_library(const char *library_name);
-
-#ifdef __cplusplus
-}
-#endif
\ No newline at end of file
diff --git a/loader/dobby/builtin-plugin/GlobalOffsetTableHook/CMakeLists.txt b/loader/dobby/builtin-plugin/GlobalOffsetTableHook/CMakeLists.txt
deleted file mode 100644
index 194b450f..00000000
--- a/loader/dobby/builtin-plugin/GlobalOffsetTableHook/CMakeLists.txt
+++ /dev/null
@@ -1,13 +0,0 @@
-if(SYSTEM.Darwin)
-set(SOURCE_FILE_LIST
-  ${CMAKE_CURRENT_SOURCE_DIR}/global_offset_table_hook.cc
-  )
-endif()
-
-add_library(global_offset_table_hook STATIC
-  ${SOURCE_FILE_LIST}
-  )
-
-include_directories(
-  .
-)
diff --git a/loader/dobby/builtin-plugin/GlobalOffsetTableHook/global_offset_table_hook.cc b/loader/dobby/builtin-plugin/GlobalOffsetTableHook/global_offset_table_hook.cc
deleted file mode 100644
index 70fbe045..00000000
--- a/loader/dobby/builtin-plugin/GlobalOffsetTableHook/global_offset_table_hook.cc
+++ /dev/null
@@ -1,192 +0,0 @@
-#include "global_offset_table_hook.h"
-
-#include <mach-o/dyld.h>
-#include <mach-o/loader.h>
-#include <mach-o/nlist.h>
-#include <mach-o/dyld_images.h>
-
-#include <stdint.h>
-#include <stdio.h>
-#include <string.h>
-
-#include <mach/vm_map.h>
-#include <mach/mach.h>
-#include <sys/mman.h>
-
-#include <vector>
-
-#include "common_header.h"
-
-#include "logging/logging.h"
-
-#include "PlatformUtil/ProcessRuntimeUtility.h"
-
-#if defined(__LP64__)
-typedef struct mach_header_64 mach_header_t;
-typedef struct segment_command_64 segment_command_t;
-typedef struct section_64 section_t;
-typedef struct nlist_64 nlist_t;
-#define LC_SEGMENT_ARCH_DEPENDENT LC_SEGMENT_64
-#else
-typedef struct mach_header mach_header_t;
-typedef struct segment_command segment_command_t;
-typedef struct section section_t;
-typedef struct nlist nlist_t;
-#define LC_SEGMENT_ARCH_DEPENDENT LC_SEGMENT
-#endif
-
-static void *iterate_indirect_symtab(char *symbol_name, section_t *section, intptr_t slide, nlist_t *symtab,
-                                     char *strtab, uint32_t *indirect_symtab) {
-  const bool is_data_const = strcmp(section->segname, "__DATA_CONST") == 0;
-  uint32_t *indirect_symbol_indices = indirect_symtab + section->reserved1;
-  void **indirect_symbol_bindings = (void **)((uintptr_t)slide + section->addr);
-
-  vm_prot_t old_protection = VM_PROT_READ;
-  if (is_data_const) {
-    mprotect(indirect_symbol_bindings, section->size, PROT_READ | PROT_WRITE);
-  }
-
-  for (uint i = 0; i < section->size / sizeof(void *); i++) {
-    uint32_t symtab_index = indirect_symbol_indices[i];
-    if (symtab_index == INDIRECT_SYMBOL_ABS || symtab_index == INDIRECT_SYMBOL_LOCAL ||
-        symtab_index == (INDIRECT_SYMBOL_LOCAL | INDIRECT_SYMBOL_ABS)) {
-      continue;
-    }
-    uint32_t strtab_offset = symtab[symtab_index].n_un.n_strx;
-    char *local_symbol_name = strtab + strtab_offset;
-    bool symbol_name_longer_than_1 = symbol_name[0] && symbol_name[1];
-    if (strcmp(local_symbol_name, symbol_name) == 0) {
-      return &indirect_symbol_bindings[i];
-    }
-    if (local_symbol_name[0] == '_') {
-      if (strcmp(symbol_name, &local_symbol_name[1]) == 0) {
-        return &indirect_symbol_bindings[i];
-      }
-    }
-  }
-
-  if (is_data_const && 0) {
-    int protection = 0;
-    if (old_protection & VM_PROT_READ) {
-      protection |= PROT_READ;
-    }
-    if (old_protection & VM_PROT_WRITE) {
-      protection |= PROT_WRITE;
-    }
-    if (old_protection & VM_PROT_EXECUTE) {
-      protection |= PROT_EXEC;
-    }
-    mprotect(indirect_symbol_bindings, section->size, protection);
-  }
-  return NULL;
-}
-
-static void *get_global_offset_table_stub(mach_header_t *header, char *symbol_name) {
-  segment_command_t *curr_seg_cmd;
-  segment_command_t *text_segment, *data_segment, *linkedit_segment;
-  struct symtab_command *symtab_cmd = NULL;
-  struct dysymtab_command *dysymtab_cmd = NULL;
-
-  uintptr_t cur = (uintptr_t)header + sizeof(mach_header_t);
-  for (uint i = 0; i < header->ncmds; i++, cur += curr_seg_cmd->cmdsize) {
-    curr_seg_cmd = (segment_command_t *)cur;
-    if (curr_seg_cmd->cmd == LC_SEGMENT_ARCH_DEPENDENT) {
-      if (strcmp(curr_seg_cmd->segname, "__LINKEDIT") == 0) {
-        linkedit_segment = curr_seg_cmd;
-      } else if (strcmp(curr_seg_cmd->segname, "__DATA") == 0) {
-        data_segment = curr_seg_cmd;
-      } else if (strcmp(curr_seg_cmd->segname, "__TEXT") == 0) {
-        text_segment = curr_seg_cmd;
-      }
-    } else if (curr_seg_cmd->cmd == LC_SYMTAB) {
-      symtab_cmd = (struct symtab_command *)curr_seg_cmd;
-    } else if (curr_seg_cmd->cmd == LC_DYSYMTAB) {
-      dysymtab_cmd = (struct dysymtab_command *)curr_seg_cmd;
-    }
-  }
-
-  if (!symtab_cmd || !linkedit_segment || !linkedit_segment) {
-    return NULL;
-  }
-
-  uintptr_t slide = (uintptr_t)header - (uintptr_t)text_segment->vmaddr;
-  uintptr_t linkedit_base = (uintptr_t)slide + linkedit_segment->vmaddr - linkedit_segment->fileoff;
-  nlist_t *symtab = (nlist_t *)(linkedit_base + symtab_cmd->symoff);
-  char *strtab = (char *)(linkedit_base + symtab_cmd->stroff);
-  uint32_t symtab_count = symtab_cmd->nsyms;
-
-  uint32_t *indirect_symtab = (uint32_t *)(linkedit_base + dysymtab_cmd->indirectsymoff);
-
-  cur = (uintptr_t)header + sizeof(mach_header_t);
-  for (uint i = 0; i < header->ncmds; i++, cur += curr_seg_cmd->cmdsize) {
-    curr_seg_cmd = (segment_command_t *)cur;
-    if (curr_seg_cmd->cmd == LC_SEGMENT_ARCH_DEPENDENT) {
-      if (strcmp(curr_seg_cmd->segname, "__DATA") != 0 && strcmp(curr_seg_cmd->segname, "__DATA_CONST") != 0) {
-        continue;
-      }
-      for (uint j = 0; j < curr_seg_cmd->nsects; j++) {
-        section_t *sect = (section_t *)(cur + sizeof(segment_command_t)) + j;
-        if ((sect->flags & SECTION_TYPE) == S_LAZY_SYMBOL_POINTERS) {
-          void *stub = iterate_indirect_symtab(symbol_name, sect, slide, symtab, strtab, indirect_symtab);
-          if (stub)
-            return stub;
-        }
-        if ((sect->flags & SECTION_TYPE) == S_NON_LAZY_SYMBOL_POINTERS) {
-          void *stub = iterate_indirect_symtab(symbol_name, sect, slide, symtab, strtab, indirect_symtab);
-          if (stub)
-            return stub;
-        }
-      }
-    }
-  }
-
-  return NULL;
-}
-
-PUBLIC int DobbyGlobalOffsetTableReplace(char *image_name, char *symbol_name, void *fake_func, void **orig_func_ptr) {
-  std::vector<RuntimeModule> ProcessModuleMap = ProcessRuntimeUtility::GetProcessModuleMap();
-
-  for (auto module : ProcessModuleMap) {
-    if (image_name != NULL && strstr(module.path, image_name) == NULL)
-      continue;
-
-    addr_t header = (addr_t)module.load_address;
-    size_t slide = 0;
-
-#if 0
-    if (header) {
-      if (((struct mach_header *)header)->magic == MH_MAGIC_64)
-        slide = macho_kit_get_slide64(header);
-    }
-#endif
-
-#if 0
-    LOG(1, "resolve image: %s", module.path);
-#endif
-
-    uint32_t nlist_count = 0;
-    nlist_t *nlist_array = 0;
-    char *string_pool = 0;
-
-    void *stub = get_global_offset_table_stub((mach_header_t *)header, symbol_name);
-    if (stub) {
-      void *orig_func;
-      orig_func = *(void **)stub;
-#if __has_feature(ptrauth_calls)
-      orig_func = ptrauth_strip(orig_func, ptrauth_key_asia);
-      orig_func = ptrauth_sign_unauthenticated(orig_func, ptrauth_key_asia, 0);
-#endif
-      *orig_func_ptr = orig_func;
-
-#if __has_feature(ptrauth_calls)
-      fake_func = (void *)ptrauth_strip(fake_func, ptrauth_key_asia);
-      fake_func = ptrauth_sign_unauthenticated(fake_func, ptrauth_key_asia, stub);
-#endif
-      *(void **)stub = fake_func;
-    }
-
-    if (image_name)
-      return 0;
-  }
-  return -1;
-}
diff --git a/loader/dobby/builtin-plugin/GlobalOffsetTableHook/global_offset_table_hook.h b/loader/dobby/builtin-plugin/GlobalOffsetTableHook/global_offset_table_hook.h
deleted file mode 100644
index f88c0670..00000000
--- a/loader/dobby/builtin-plugin/GlobalOffsetTableHook/global_offset_table_hook.h
+++ /dev/null
@@ -1,11 +0,0 @@
-#pragma once
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-int DobbyGlobalOffsetTableReplace(char *image_name, char *symbol_name, void *fake_func, void **orig_func);
-
-#ifdef __cplusplus
-}
-#endif
\ No newline at end of file
diff --git a/loader/dobby/builtin-plugin/HideSystemCall/README b/loader/dobby/builtin-plugin/HideSystemCall/README
deleted file mode 100644
index c8c6761a..00000000
--- a/loader/dobby/builtin-plugin/HideSystemCall/README
+++ /dev/null
@@ -1 +0,0 @@
-private
\ No newline at end of file
diff --git a/loader/dobby/builtin-plugin/IntegrityReadCallback/README b/loader/dobby/builtin-plugin/IntegrityReadCallback/README
deleted file mode 100644
index c8c6761a..00000000
--- a/loader/dobby/builtin-plugin/IntegrityReadCallback/README
+++ /dev/null
@@ -1 +0,0 @@
-private
\ No newline at end of file
diff --git a/loader/dobby/builtin-plugin/LinkerImageLoadCallback/linker_load_callback.cc b/loader/dobby/builtin-plugin/LinkerImageLoadCallback/linker_load_callback.cc
deleted file mode 100644
index a3f026a6..00000000
--- a/loader/dobby/builtin-plugin/LinkerImageLoadCallback/linker_load_callback.cc
+++ /dev/null
@@ -1,61 +0,0 @@
-#include "dobby.h"
-#include "common_header.h"
-
-#include <dlfcn.h>
-
-#include <vector>
-
-#define LOG_TAG "LinkerLoadCallback"
-
-std::vector<linker_load_callback_t> *linker_load_callback_array;
-
-static void *(*orig_dlopen)(const char *__file, int __mode);
-static void *fake_dlopen(const char *__file, int __mode) {
-  void *result = orig_dlopen(__file, __mode);
-  if (result != NULL && __file) {
-    for (auto &callback : *linker_load_callback_array) {
-      callback(__file, result);
-    }
-  }
-  return result;
-}
-
-static void *(*orig_loader_dlopen)(const char *filename, int flags, const void *caller_addr);
-static void *fake_loader_dlopen(const char *filename, int flags, const void *caller_addr) {
-  void *result = orig_loader_dlopen(filename, flags, caller_addr);
-  if (result != NULL) {
-    for (auto &callback : *linker_load_callback_array) {
-      callback(filename, result);
-    }
-  }
-  return result;
-}
-
-PUBLIC void dobby_register_image_load_callback(linker_load_callback_t func) {
-  if (linker_load_callback_array == NULL)
-    linker_load_callback_array = new std::vector<linker_load_callback_t>();
-  linker_load_callback_array->push_back(func);
-}
-
-#if defined(DOBBY_DEBUG) && 1
-static void monitor_linker_load(const char *image_name, void *handle) {
-  LOG(1, "load %s at %p", image_name, handle);
-}
-#endif
-
-__attribute__((constructor)) static void ctor() {
-  if (linker_load_callback_array == NULL)
-    linker_load_callback_array = new std::vector<linker_load_callback_t>();
-
-#if defined(__ANDROID__)
-  void *__loader_dlopen = DobbySymbolResolver(NULL, "__loader_dlopen");
-  LOG(1, "__loader_dlopen: %p", __loader_dlopen);
-  DobbyHook(__loader_dlopen, (void *)fake_loader_dlopen, (void **)&orig_loader_dlopen);
-#else
-  DobbyHook((void *)DobbySymbolResolver(NULL, "dlopen"), (void *)fake_dlopen, (void **)&orig_dlopen);
-#endif
-
-#if defined(DOBBY_DEBUG) && 1
-  dobby_register_image_load_callback(monitor_linker_load);
-#endif
-}
diff --git a/loader/dobby/builtin-plugin/MemoryRemapHook/README b/loader/dobby/builtin-plugin/MemoryRemapHook/README
deleted file mode 100644
index c8c6761a..00000000
--- a/loader/dobby/builtin-plugin/MemoryRemapHook/README
+++ /dev/null
@@ -1 +0,0 @@
-private
\ No newline at end of file
diff --git a/loader/dobby/builtin-plugin/ObjcRuntimeHook/CMakeLists.txt b/loader/dobby/builtin-plugin/ObjcRuntimeHook/CMakeLists.txt
deleted file mode 100644
index c689f124..00000000
--- a/loader/dobby/builtin-plugin/ObjcRuntimeHook/CMakeLists.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-add_library(objc_runtime_hook
-  objc_runtime_hook.mm
-  )
\ No newline at end of file
diff --git a/loader/dobby/builtin-plugin/ObjcRuntimeHook/objc_runtime_hook.h b/loader/dobby/builtin-plugin/ObjcRuntimeHook/objc_runtime_hook.h
deleted file mode 100644
index bb721da9..00000000
--- a/loader/dobby/builtin-plugin/ObjcRuntimeHook/objc_runtime_hook.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#pragma once
-
-#include <stdio.h>
-#include <objc/runtime.h>
-#include <Foundation/Foundation.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-IMP DobbyObjcReplace(Class _class, SEL _selector, IMP replacement);
-
-void DobbyObjcReplaceEx(const char *class_name, const char *selector_name, void *fake_impl, void **orig_impl);
-
-void *DobbyObjcResolveMethodImp(const char *class_name, const char *selector_name);
-
-#ifdef __cplusplus
-}
-#endif
diff --git a/loader/dobby/builtin-plugin/ObjcRuntimeHook/objc_runtime_hook.mm b/loader/dobby/builtin-plugin/ObjcRuntimeHook/objc_runtime_hook.mm
deleted file mode 100644
index 292fa99e..00000000
--- a/loader/dobby/builtin-plugin/ObjcRuntimeHook/objc_runtime_hook.mm
+++ /dev/null
@@ -1,60 +0,0 @@
-#include "ObjcRuntimeHook/objc_runtime_hook.h"
-#include "dobby_internal.h"
-
-#include <stdio.h>
-#include <objc/runtime.h>
-
-extern "C" {
-#include "misc-helper/variable_cache.h"
-}
-
-/* clang -rewrite-objc main.m */
-
-IMP DobbyObjcReplace(Class class_, SEL sel_, IMP fake_impl) {
-  Method method_ = class_getInstanceMethod(class_, sel_);
-  if (!method_)
-    method_ = class_getClassMethod(class_, sel_);
-
-  if (!method_) {
-    DLOG(0, "Not found class: %s, selector: %s method\n", class_getName(class_), sel_getName(sel_));
-    return NULL;
-  }
-
-  return method_setImplementation(method_, (IMP)fake_impl);
-}
-
-void DobbyObjcReplaceEx(const char *class_name, const char *selector_name, void *fake_impl, void **out_orig_impl) {
-  Class class_ = objc_getClass(class_name);
-  SEL sel_ = sel_registerName(selector_name);
-
-  Method method_ = class_getInstanceMethod(class_, sel_);
-  if (!method_)
-    method_ = class_getClassMethod(class_, sel_);
-
-  if (!method_) {
-    DLOG(0, "Not found class: %s, selector: %s method\n", class_name, selector_name);
-    return;
-  }
-
-  void *orig_impl = NULL;
-  orig_impl = (void *)method_setImplementation(method_, (IMP)fake_impl);
-  if (out_orig_impl) {
-    *out_orig_impl = orig_impl;
-  }
-  return;
-}
-
-void *DobbyObjcResolveMethodImp(const char *class_name, const char *selector_name) {
-  Class class_ = objc_getClass(class_name);
-  SEL sel_ = sel_registerName(selector_name);
-
-  Method method_ = class_getInstanceMethod(class_, sel_);
-  if (!method_)
-    method_ = class_getClassMethod(class_, sel_);
-
-  if (!method_) {
-    DLOG(0, "Not found class: %s, selector: %s method\n", class_name, selector_name);
-    return NULL;
-  }
-  return (void *)method_getImplementation(method_);
-}
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/CMakeLists.txt b/loader/dobby/builtin-plugin/SupervisorCallMonitor/CMakeLists.txt
deleted file mode 100644
index ddddfd76..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/CMakeLists.txt
+++ /dev/null
@@ -1,23 +0,0 @@
-add_library(supervisor_call_monitor STATIC
-  mach_system_call_log_handler.cc
-  system_call_log_handler.cc
-  supervisor_call_monitor.cc
-  sensitive_api_monitor.cc
-  misc_utility.cc
-  )
-target_link_libraries(supervisor_call_monitor
-  misc_helper
-  dobby
-  )
-
-add_library(test_supervisor_call_monitor SHARED
-  test_supervisor_call_monitor.cc
-  )
-target_link_libraries(test_supervisor_call_monitor
-  supervisor_call_monitor
-)
-
-include_directories(
-  .
-)
-
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/README b/loader/dobby/builtin-plugin/SupervisorCallMonitor/README
deleted file mode 100644
index 3832eb51..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/README
+++ /dev/null
@@ -1 +0,0 @@
-Monitor all supervisor call
\ No newline at end of file
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/README b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/README
deleted file mode 100644
index b4966e0e..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/README
+++ /dev/null
@@ -1 +0,0 @@
-syscalls.c is automatically generated
\ No newline at end of file
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/audit_triggers.defs b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/audit_triggers.defs
deleted file mode 100644
index 1d6e279b..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/audit_triggers.defs
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright (c) 2004-2008, Apple Inc.  All rights reserved.
- * 
- * @APPLE_BSD_LICENSE_HEADER_START@
- * 
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 
- * 1.  Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer. 
- * 2.  Redistributions in binary form must reproduce the above copyright
- *     notice, this list of conditions and the following disclaimer in the
- *     documentation and/or other materials provided with the distribution. 
- * 3.  Neither the name of Apple Inc. ("Apple") nor the names of
- *     its contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission. 
- * 
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY 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.
- * 
- * @APPLE_BSD_LICENSE_HEADER_END@
-*/
-
-/*
- *  Interface definition for the audit logging facility.
- */
-
-subsystem
-#if	KERNEL_USER
-    KernelUser
-#endif	/* KERNEL_USER */
-    audit_triggers 123;
-
-#include <mach/std_types.defs>
-#include <mach/mach_types.defs>
-
-simpleroutine	audit_triggers(
-		audit_port	: mach_port_t; 
-	in	flags		: int);
-
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/boolean.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/boolean.h
deleted file mode 100644
index 6ef6d4bc..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/boolean.h
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-/*
- * Mach Operating System
- * Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University
- * All Rights Reserved.
- *
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- */
-/*
- */
-/*
- *	File:	mach/boolean.h
- *
- *	Boolean data type.
- *
- */
-
-#ifndef _MACH_BOOLEAN_H_
-#define _MACH_BOOLEAN_H_
-
-/*
- *	Pick up "boolean_t" type definition
- */
-
-#ifndef ASSEMBLER
-#include <mach/machine/boolean.h>
-#endif  /* ASSEMBLER */
-
-/*
- *	Define TRUE and FALSE if not defined.
- */
-
-#ifndef TRUE
-#define TRUE    1
-#endif  /* TRUE */
-
-#ifndef FALSE
-#define FALSE   0
-#endif  /* FALSE */
-
-#endif  /* _MACH_BOOLEAN_H_ */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/bootstrap.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/bootstrap.h
deleted file mode 100644
index e8300859..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/bootstrap.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Copyright (c) 2002 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * Mach bootstrap interfaces (obsolete: header included only for compatibility)
- */
-#ifndef _MACH_BOOTSTRAP_H_
-#define _MACH_BOOTSTRAP_H_
-
-#endif /* _MACH_BOOTSTRAP_H_ */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/clock.defs b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/clock.defs
deleted file mode 100644
index 440042c8..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/clock.defs
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- * 
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- * 
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- * 
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- * 
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-/*
- * 	File:		mach/clock.defs
- *	Purpose:	Kernel clock subsystem definitions. This
- *			file defines the clock request interface.
- */
-
-subsystem
-#if	KERNEL_SERVER
-	  KernelServer
-#endif	/* KERNEL_SERVER */
-		       clock 1000;
-
-#include <mach/std_types.defs>
-#include <mach/mach_types.defs>
-#include <mach/clock_types.defs>
-
-/*
- * References to clock objects are returned by:
- *	host_get_clock_service(host_t,...)
- *	host_get_clock_control(host_priv_t,...) - Priviledged subclass
- */
-
-/*
- *	Get the clock time.
- *	Available to all.
- */
-routine	clock_get_time(
-		clock_serv	: clock_serv_t;
-	out	cur_time	: mach_timespec_t);
-
-/*
- *	Get clock attributes.
- *	Available to all.
- */
-routine	clock_get_attributes(
-		clock_serv	: clock_serv_t;
-	in	flavor		: clock_flavor_t;
-	out	clock_attr	: clock_attr_t, CountInOut);
-
-/*
- *	Setup a clock alarm.
- *	Available to all.
- */
-routine clock_alarm(
-		clock_serv	: clock_serv_t;
-		alarm_type	: alarm_type_t;
-		alarm_time	: mach_timespec_t;
-                alarm_port      : clock_reply_t =
-			MACH_MSG_TYPE_MAKE_SEND_ONCE|polymorphic);
-
-/* vim: set ft=c : */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/clock.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/clock.h
deleted file mode 100644
index 81e90eea..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/clock.h
+++ /dev/null
@@ -1,245 +0,0 @@
-#ifndef	_clock_user_
-#define	_clock_user_
-
-/* Module clock */
-
-#include <string.h>
-#include <mach/ndr.h>
-#include <mach/boolean.h>
-#include <mach/kern_return.h>
-#include <mach/notify.h>
-#include <mach/mach_types.h>
-#include <mach/message.h>
-#include <mach/mig_errors.h>
-#include <mach/port.h>
-	
-/* BEGIN MIG_STRNCPY_ZEROFILL CODE */
-
-#if defined(__has_include)
-#if __has_include(<mach/mig_strncpy_zerofill_support.h>)
-#ifndef USING_MIG_STRNCPY_ZEROFILL
-#define USING_MIG_STRNCPY_ZEROFILL
-#endif
-#ifndef __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
-#define __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
-#ifdef __cplusplus
-extern "C" {
-#endif
-	extern int mig_strncpy_zerofill(char *dest, const char *src, int len) __attribute__((weak_import));
-#ifdef __cplusplus
-}
-#endif
-#endif /* __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__ */
-#endif /* __has_include(<mach/mig_strncpy_zerofill_support.h>) */
-#endif /* __has_include */
-	
-/* END MIG_STRNCPY_ZEROFILL CODE */
-
-
-#ifdef AUTOTEST
-#ifndef FUNCTION_PTR_T
-#define FUNCTION_PTR_T
-typedef void (*function_ptr_t)(mach_port_t, char *, mach_msg_type_number_t);
-typedef struct {
-        char            *name;
-        function_ptr_t  function;
-} function_table_entry;
-typedef function_table_entry   *function_table_t;
-#endif /* FUNCTION_PTR_T */
-#endif /* AUTOTEST */
-
-#ifndef	clock_MSG_COUNT
-#define	clock_MSG_COUNT	3
-#endif	/* clock_MSG_COUNT */
-
-#include <mach/std_types.h>
-#include <mach/mig.h>
-#include <mach/mig.h>
-#include <mach/mach_types.h>
-#include <mach/mach_types.h>
-
-#ifdef __BeforeMigUserHeader
-__BeforeMigUserHeader
-#endif /* __BeforeMigUserHeader */
-
-#include <sys/cdefs.h>
-__BEGIN_DECLS
-
-
-/* Routine clock_get_time */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t clock_get_time
-(
-	clock_serv_t clock_serv,
-	mach_timespec_t *cur_time
-);
-
-/* Routine clock_get_attributes */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t clock_get_attributes
-(
-	clock_serv_t clock_serv,
-	clock_flavor_t flavor,
-	clock_attr_t clock_attr,
-	mach_msg_type_number_t *clock_attrCnt
-);
-
-/* Routine clock_alarm */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t clock_alarm
-(
-	clock_serv_t clock_serv,
-	alarm_type_t alarm_type,
-	mach_timespec_t alarm_time,
-	clock_reply_t alarm_port
-);
-
-__END_DECLS
-
-/********************** Caution **************************/
-/* The following data types should be used to calculate  */
-/* maximum message sizes only. The actual message may be */
-/* smaller, and the position of the arguments within the */
-/* message layout may vary from what is presented here.  */
-/* For example, if any of the arguments are variable-    */
-/* sized, and less than the maximum is sent, the data    */
-/* will be packed tight in the actual message to reduce  */
-/* the presence of holes.                                */
-/********************** Caution **************************/
-
-/* typedefs for all requests */
-
-#ifndef __Request__clock_subsystem__defined
-#define __Request__clock_subsystem__defined
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__clock_get_time_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		clock_flavor_t flavor;
-		mach_msg_type_number_t clock_attrCnt;
-	} __Request__clock_get_attributes_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t alarm_port;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		alarm_type_t alarm_type;
-		mach_timespec_t alarm_time;
-	} __Request__clock_alarm_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-#endif /* !__Request__clock_subsystem__defined */
-
-/* union of all requests */
-
-#ifndef __RequestUnion__clock_subsystem__defined
-#define __RequestUnion__clock_subsystem__defined
-union __RequestUnion__clock_subsystem {
-	__Request__clock_get_time_t Request_clock_get_time;
-	__Request__clock_get_attributes_t Request_clock_get_attributes;
-	__Request__clock_alarm_t Request_clock_alarm;
-};
-#endif /* !__RequestUnion__clock_subsystem__defined */
-/* typedefs for all replies */
-
-#ifndef __Reply__clock_subsystem__defined
-#define __Reply__clock_subsystem__defined
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		mach_timespec_t cur_time;
-	} __Reply__clock_get_time_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		mach_msg_type_number_t clock_attrCnt;
-		int clock_attr[1];
-	} __Reply__clock_get_attributes_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__clock_alarm_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-#endif /* !__Reply__clock_subsystem__defined */
-
-/* union of all replies */
-
-#ifndef __ReplyUnion__clock_subsystem__defined
-#define __ReplyUnion__clock_subsystem__defined
-union __ReplyUnion__clock_subsystem {
-	__Reply__clock_get_time_t Reply_clock_get_time;
-	__Reply__clock_get_attributes_t Reply_clock_get_attributes;
-	__Reply__clock_alarm_t Reply_clock_alarm;
-};
-#endif /* !__RequestUnion__clock_subsystem__defined */
-
-#ifndef subsystem_to_name_map_clock
-#define subsystem_to_name_map_clock \
-    { "clock_get_time", 1000 },\
-    { "clock_get_attributes", 1001 },\
-    { "clock_alarm", 1002 }
-#endif
-
-#ifdef __AfterMigUserHeader
-__AfterMigUserHeader
-#endif /* __AfterMigUserHeader */
-
-#endif	 /* _clock_user_ */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/clock_priv.defs b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/clock_priv.defs
deleted file mode 100644
index b3854a4e..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/clock_priv.defs
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- * 
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- * 
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- * 
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- * 
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-/*
- * 	File:		mach/clock_priv.defs
- *	Purpose:	Kernel clock subsystem definitions. This
- *			file defines the clock request interface.
- */
-
-subsystem
-#if	KERNEL_SERVER
-	  KernelServer
-#endif	/* KERNEL_SERVER */
-		       clock_priv 1200;
-
-#include <mach/std_types.defs>
-#include <mach/mach_types.defs>
-#include <mach/clock_types.defs>
-
-/*
- * References to clock_priv objects are returned by:
- *	host_get_clock_control(host_priv_t,...) - Priviledged subclass
- */
-
-/*
- *	Set the clock time.
- *	Privileged.
- */
-routine	clock_set_time(
-		clock_ctrl	: clock_ctrl_t;
-		new_time	: mach_timespec_t);
-
-/*
- *	Set clock attributes.
- *	Privileged.
- */
-routine	clock_set_attributes(
-		clock_ctrl	: clock_ctrl_t;
-	in	flavor		: clock_flavor_t;
-	in	clock_attr	: clock_attr_t);
-
-/* vim: set ft=c : */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/clock_priv.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/clock_priv.h
deleted file mode 100644
index ec6a6584..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/clock_priv.h
+++ /dev/null
@@ -1,199 +0,0 @@
-#ifndef	_clock_priv_user_
-#define	_clock_priv_user_
-
-/* Module clock_priv */
-
-#include <string.h>
-#include <mach/ndr.h>
-#include <mach/boolean.h>
-#include <mach/kern_return.h>
-#include <mach/notify.h>
-#include <mach/mach_types.h>
-#include <mach/message.h>
-#include <mach/mig_errors.h>
-#include <mach/port.h>
-	
-/* BEGIN MIG_STRNCPY_ZEROFILL CODE */
-
-#if defined(__has_include)
-#if __has_include(<mach/mig_strncpy_zerofill_support.h>)
-#ifndef USING_MIG_STRNCPY_ZEROFILL
-#define USING_MIG_STRNCPY_ZEROFILL
-#endif
-#ifndef __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
-#define __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
-#ifdef __cplusplus
-extern "C" {
-#endif
-	extern int mig_strncpy_zerofill(char *dest, const char *src, int len) __attribute__((weak_import));
-#ifdef __cplusplus
-}
-#endif
-#endif /* __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__ */
-#endif /* __has_include(<mach/mig_strncpy_zerofill_support.h>) */
-#endif /* __has_include */
-	
-/* END MIG_STRNCPY_ZEROFILL CODE */
-
-
-#ifdef AUTOTEST
-#ifndef FUNCTION_PTR_T
-#define FUNCTION_PTR_T
-typedef void (*function_ptr_t)(mach_port_t, char *, mach_msg_type_number_t);
-typedef struct {
-        char            *name;
-        function_ptr_t  function;
-} function_table_entry;
-typedef function_table_entry   *function_table_t;
-#endif /* FUNCTION_PTR_T */
-#endif /* AUTOTEST */
-
-#ifndef	clock_priv_MSG_COUNT
-#define	clock_priv_MSG_COUNT	2
-#endif	/* clock_priv_MSG_COUNT */
-
-#include <mach/std_types.h>
-#include <mach/mig.h>
-#include <mach/mig.h>
-#include <mach/mach_types.h>
-#include <mach/mach_types.h>
-
-#ifdef __BeforeMigUserHeader
-__BeforeMigUserHeader
-#endif /* __BeforeMigUserHeader */
-
-#include <sys/cdefs.h>
-__BEGIN_DECLS
-
-
-/* Routine clock_set_time */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t clock_set_time
-(
-	clock_ctrl_t clock_ctrl,
-	mach_timespec_t new_time
-);
-
-/* Routine clock_set_attributes */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t clock_set_attributes
-(
-	clock_ctrl_t clock_ctrl,
-	clock_flavor_t flavor,
-	clock_attr_t clock_attr,
-	mach_msg_type_number_t clock_attrCnt
-);
-
-__END_DECLS
-
-/********************** Caution **************************/
-/* The following data types should be used to calculate  */
-/* maximum message sizes only. The actual message may be */
-/* smaller, and the position of the arguments within the */
-/* message layout may vary from what is presented here.  */
-/* For example, if any of the arguments are variable-    */
-/* sized, and less than the maximum is sent, the data    */
-/* will be packed tight in the actual message to reduce  */
-/* the presence of holes.                                */
-/********************** Caution **************************/
-
-/* typedefs for all requests */
-
-#ifndef __Request__clock_priv_subsystem__defined
-#define __Request__clock_priv_subsystem__defined
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		mach_timespec_t new_time;
-	} __Request__clock_set_time_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		clock_flavor_t flavor;
-		mach_msg_type_number_t clock_attrCnt;
-		int clock_attr[1];
-	} __Request__clock_set_attributes_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-#endif /* !__Request__clock_priv_subsystem__defined */
-
-/* union of all requests */
-
-#ifndef __RequestUnion__clock_priv_subsystem__defined
-#define __RequestUnion__clock_priv_subsystem__defined
-union __RequestUnion__clock_priv_subsystem {
-	__Request__clock_set_time_t Request_clock_set_time;
-	__Request__clock_set_attributes_t Request_clock_set_attributes;
-};
-#endif /* !__RequestUnion__clock_priv_subsystem__defined */
-/* typedefs for all replies */
-
-#ifndef __Reply__clock_priv_subsystem__defined
-#define __Reply__clock_priv_subsystem__defined
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__clock_set_time_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__clock_set_attributes_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-#endif /* !__Reply__clock_priv_subsystem__defined */
-
-/* union of all replies */
-
-#ifndef __ReplyUnion__clock_priv_subsystem__defined
-#define __ReplyUnion__clock_priv_subsystem__defined
-union __ReplyUnion__clock_priv_subsystem {
-	__Reply__clock_set_time_t Reply_clock_set_time;
-	__Reply__clock_set_attributes_t Reply_clock_set_attributes;
-};
-#endif /* !__RequestUnion__clock_priv_subsystem__defined */
-
-#ifndef subsystem_to_name_map_clock_priv
-#define subsystem_to_name_map_clock_priv \
-    { "clock_set_time", 1200 },\
-    { "clock_set_attributes", 1201 }
-#endif
-
-#ifdef __AfterMigUserHeader
-__AfterMigUserHeader
-#endif /* __AfterMigUserHeader */
-
-#endif	 /* _clock_priv_user_ */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/clock_reply.defs b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/clock_reply.defs
deleted file mode 100644
index 9646f90d..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/clock_reply.defs
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- * 
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- * 
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- * 
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- * 
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-/*
- *	File:		clock_reply.defs
- *	Purpose:	Kernel clock subsystem definitions. This
- *			file defines the clock reply interface.
- */
-
-subsystem
-#if	KERNEL_USER
-	  KernelUser
-#endif	/* KERNEL_USER */
-		     clock_reply 3125107;  /* Matches up with old value */
-
-#include <mach/std_types.defs>
-#include <mach/clock_types.defs>
-
-
-/*
- *	Reply routine for clock_alarm. 
- */
-simpleroutine clock_alarm_reply(
-                alarm_port      : clock_reply_t;
-		alarm_code	: kern_return_t;
-		alarm_type	: alarm_type_t;
-		alarm_time	: mach_timespec_t);
-
-/* vim: set ft=c : */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/clock_reply.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/clock_reply.h
deleted file mode 100644
index 7bacc95c..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/clock_reply.h
+++ /dev/null
@@ -1,159 +0,0 @@
-#ifndef	_clock_reply_user_
-#define	_clock_reply_user_
-
-/* Module clock_reply */
-
-#include <string.h>
-#include <mach/ndr.h>
-#include <mach/boolean.h>
-#include <mach/kern_return.h>
-#include <mach/notify.h>
-#include <mach/mach_types.h>
-#include <mach/message.h>
-#include <mach/mig_errors.h>
-#include <mach/port.h>
-	
-/* BEGIN MIG_STRNCPY_ZEROFILL CODE */
-
-#if defined(__has_include)
-#if __has_include(<mach/mig_strncpy_zerofill_support.h>)
-#ifndef USING_MIG_STRNCPY_ZEROFILL
-#define USING_MIG_STRNCPY_ZEROFILL
-#endif
-#ifndef __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
-#define __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
-#ifdef __cplusplus
-extern "C" {
-#endif
-	extern int mig_strncpy_zerofill(char *dest, const char *src, int len) __attribute__((weak_import));
-#ifdef __cplusplus
-}
-#endif
-#endif /* __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__ */
-#endif /* __has_include(<mach/mig_strncpy_zerofill_support.h>) */
-#endif /* __has_include */
-	
-/* END MIG_STRNCPY_ZEROFILL CODE */
-
-
-#ifdef AUTOTEST
-#ifndef FUNCTION_PTR_T
-#define FUNCTION_PTR_T
-typedef void (*function_ptr_t)(mach_port_t, char *, mach_msg_type_number_t);
-typedef struct {
-        char            *name;
-        function_ptr_t  function;
-} function_table_entry;
-typedef function_table_entry   *function_table_t;
-#endif /* FUNCTION_PTR_T */
-#endif /* AUTOTEST */
-
-#ifndef	clock_reply_MSG_COUNT
-#define	clock_reply_MSG_COUNT	1
-#endif	/* clock_reply_MSG_COUNT */
-
-#include <mach/std_types.h>
-#include <mach/mig.h>
-#include <mach/mach_types.h>
-
-#ifdef __BeforeMigUserHeader
-__BeforeMigUserHeader
-#endif /* __BeforeMigUserHeader */
-
-#include <sys/cdefs.h>
-__BEGIN_DECLS
-
-
-/* SimpleRoutine clock_alarm_reply */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t clock_alarm_reply
-(
-	clock_reply_t alarm_port,
-	mach_msg_type_name_t alarm_portPoly,
-	kern_return_t alarm_code,
-	alarm_type_t alarm_type,
-	mach_timespec_t alarm_time
-);
-
-__END_DECLS
-
-/********************** Caution **************************/
-/* The following data types should be used to calculate  */
-/* maximum message sizes only. The actual message may be */
-/* smaller, and the position of the arguments within the */
-/* message layout may vary from what is presented here.  */
-/* For example, if any of the arguments are variable-    */
-/* sized, and less than the maximum is sent, the data    */
-/* will be packed tight in the actual message to reduce  */
-/* the presence of holes.                                */
-/********************** Caution **************************/
-
-/* typedefs for all requests */
-
-#ifndef __Request__clock_reply_subsystem__defined
-#define __Request__clock_reply_subsystem__defined
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t alarm_code;
-		alarm_type_t alarm_type;
-		mach_timespec_t alarm_time;
-	} __Request__clock_alarm_reply_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-#endif /* !__Request__clock_reply_subsystem__defined */
-
-/* union of all requests */
-
-#ifndef __RequestUnion__clock_reply_subsystem__defined
-#define __RequestUnion__clock_reply_subsystem__defined
-union __RequestUnion__clock_reply_subsystem {
-	__Request__clock_alarm_reply_t Request_clock_alarm_reply;
-};
-#endif /* !__RequestUnion__clock_reply_subsystem__defined */
-/* typedefs for all replies */
-
-#ifndef __Reply__clock_reply_subsystem__defined
-#define __Reply__clock_reply_subsystem__defined
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__clock_alarm_reply_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-#endif /* !__Reply__clock_reply_subsystem__defined */
-
-/* union of all replies */
-
-#ifndef __ReplyUnion__clock_reply_subsystem__defined
-#define __ReplyUnion__clock_reply_subsystem__defined
-union __ReplyUnion__clock_reply_subsystem {
-	__Reply__clock_alarm_reply_t Reply_clock_alarm_reply;
-};
-#endif /* !__RequestUnion__clock_reply_subsystem__defined */
-
-#ifndef subsystem_to_name_map_clock_reply
-#define subsystem_to_name_map_clock_reply \
-    { "clock_alarm_reply", 3125107 }
-#endif
-
-#ifdef __AfterMigUserHeader
-__AfterMigUserHeader
-#endif /* __AfterMigUserHeader */
-
-#endif	 /* _clock_reply_user_ */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/clock_types.defs b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/clock_types.defs
deleted file mode 100644
index 4dbacfcf..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/clock_types.defs
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- * 
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- * 
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- * 
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- * 
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-/*
- *	File:		clock_types.defs
- *	Purpose:
- *		Clock kernel interface type declarations
- */
-
-#ifndef	_MACH_CLOCK_TYPES_DEFS_
-#define _MACH_CLOCK_TYPES_DEFS_
-
-#include <mach/std_types.defs>
-
-type clock_serv_t = mach_port_t
-		cusertype: clock_serv_t
-#if	KERNEL_SERVER
-		intran: clock_serv_t convert_port_to_clock(mach_port_t)
-		outtran: mach_port_t convert_clock_to_port(clock_serv_t)
-#endif	/* KERNEL_SERVER */
-		;
-
-type clock_ctrl_t = mach_port_t
-		cusertype: clock_ctrl_t
-#if	KERNEL_SERVER
-		intran: clock_ctrl_t convert_port_to_clock_ctrl(mach_port_t)
-		outtran: mach_port_t convert_clock_ctrl_to_port(clock_ctrl_t)
-#endif	/* KERNEL_SERVER */
-		;
-
-type clock_reply_t = polymorphic|MACH_MSG_TYPE_MAKE_SEND_ONCE;
-
-type clock_flavor_t = int;
-type clock_attr_t = array[*:1] of int;
-type mach_timespec_t	= struct[2] of int;
-type time_t = int;
-type sleep_type_t = int;
-type alarm_type_t = int;
-type clock_res_t = int;
-type clock_id_t = int;
-
-import <mach/mach_types.h>;
-
-#endif	/* _MACH_CLOCK_TYPES_DEFS_ */
-
-/* vim: set ft=c : */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/clock_types.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/clock_types.h
deleted file mode 100644
index 9b3d49a9..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/clock_types.h
+++ /dev/null
@@ -1,127 +0,0 @@
-/*
- * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-/*
- *	File:		clock_types.h
- *	Purpose:	Clock facility header definitions. These
- *				definitons are needed by both kernel and
- *				user-level software.
- */
-
-/*
- *	All interfaces defined here are obsolete.
- */
-
-#ifndef _MACH_CLOCK_TYPES_H_
-#define _MACH_CLOCK_TYPES_H_
-
-#include <stdint.h>
-#include <mach/time_value.h>
-
-/*
- * Type definitions.
- */
-typedef int     alarm_type_t;           /* alarm time type */
-typedef int     sleep_type_t;           /* sleep time type */
-typedef int     clock_id_t;                     /* clock identification type */
-typedef int     clock_flavor_t;         /* clock flavor type */
-typedef int     *clock_attr_t;          /* clock attribute type */
-typedef int     clock_res_t;            /* clock resolution type */
-
-/*
- * Normal time specification used by the kernel clock facility.
- */
-struct mach_timespec {
-	unsigned int    tv_sec;                 /* seconds */
-	clock_res_t             tv_nsec;                /* nanoseconds */
-};
-typedef struct mach_timespec    mach_timespec_t;
-
-/*
- * Reserved clock id values for default clocks.
- */
-#define SYSTEM_CLOCK            0
-#define CALENDAR_CLOCK          1
-
-#define REALTIME_CLOCK          0
-
-/*
- * Attribute names.
- */
-#define CLOCK_GET_TIME_RES      1       /* get_time call resolution */
-/*							2	 * was map_time call resolution */
-#define CLOCK_ALARM_CURRES      3       /* current alarm resolution */
-#define CLOCK_ALARM_MINRES      4       /* minimum alarm resolution */
-#define CLOCK_ALARM_MAXRES      5       /* maximum alarm resolution */
-
-#define NSEC_PER_USEC   1000ull         /* nanoseconds per microsecond */
-#define USEC_PER_SEC    1000000ull      /* microseconds per second */
-#define NSEC_PER_SEC    1000000000ull   /* nanoseconds per second */
-#define NSEC_PER_MSEC   1000000ull      /* nanoseconds per millisecond */
-
-#define BAD_MACH_TIMESPEC(t)                                            \
-	((t)->tv_nsec < 0 || (t)->tv_nsec >= (long)NSEC_PER_SEC)
-
-/* t1 <=> t2, also (t1 - t2) in nsec with max of +- 1 sec */
-#define CMP_MACH_TIMESPEC(t1, t2)                                       \
-	((t1)->tv_sec > (t2)->tv_sec ? (long) +NSEC_PER_SEC :   \
-	((t1)->tv_sec < (t2)->tv_sec ? (long) -NSEC_PER_SEC :   \
-	                (t1)->tv_nsec - (t2)->tv_nsec))
-
-/* t1  += t2 */
-#define ADD_MACH_TIMESPEC(t1, t2)                                                               \
-  do {                                                                                                                  \
-	if (((t1)->tv_nsec += (t2)->tv_nsec) >= (long) NSEC_PER_SEC) {          \
-	        (t1)->tv_nsec -= (long) NSEC_PER_SEC;                                                   \
-	        (t1)->tv_sec  += 1;                                                                             \
-	}                                                                                                                       \
-	(t1)->tv_sec += (t2)->tv_sec;                                                           \
-  } while (0)
-
-/* t1  -= t2 */
-#define SUB_MACH_TIMESPEC(t1, t2)                                                               \
-  do {                                                                                                                  \
-	if (((t1)->tv_nsec -= (t2)->tv_nsec) < 0) {                                     \
-	        (t1)->tv_nsec += (long) NSEC_PER_SEC;                                                   \
-	        (t1)->tv_sec  -= 1;                                                                             \
-	}                                                                                                                       \
-	(t1)->tv_sec -= (t2)->tv_sec;                                                           \
-  } while (0)
-
-/*
- * Alarm parameter defines.
- */
-#define ALRMTYPE                        0xff            /* type (8-bit field)	*/
-#define TIME_ABSOLUTE           0x00            /* absolute time */
-#define TIME_RELATIVE           0x01            /* relative time */
-
-#define BAD_ALRMTYPE(t)         (((t) &~ TIME_RELATIVE) != 0)
-
-#endif /* _MACH_CLOCK_TYPES_H_ */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/dyld_kernel.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/dyld_kernel.h
deleted file mode 100644
index b28e45f1..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/dyld_kernel.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Copyright (c) 2016 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-
-#ifndef _MACH_DYLIB_INFO_H_
-#define _MACH_DYLIB_INFO_H_
-
-#include <mach/boolean.h>
-#include <stdint.h>
-#include <sys/_types/_fsid_t.h>
-#include <sys/_types/_u_int32_t.h>
-#include <sys/_types/_fsobj_id_t.h>
-#include <sys/_types/_uuid_t.h>
-
-/* These definitions must be kept in sync with the ones in
- * osfmk/mach/mach_types.defs.
- */
-
-struct dyld_kernel_image_info {
-	uuid_t uuid;
-	fsobj_id_t fsobjid;
-	fsid_t fsid;
-	uint64_t load_addr;
-};
-
-struct dyld_kernel_process_info {
-	struct dyld_kernel_image_info cache_image_info;
-	uint64_t timestamp;         // mach_absolute_time of last time dyld change to image list
-	uint32_t imageCount;        // number of images currently loaded into process
-	uint32_t initialImageCount; // number of images statically loaded into process (before any dlopen() calls)
-	uint8_t dyldState;          // one of dyld_process_state_* values
-	boolean_t no_cache;         // process is running without a dyld cache
-	boolean_t private_cache;    // process is using a private copy of its dyld cache
-};
-
-/* typedefs so our MIG is sane */
-
-typedef struct dyld_kernel_image_info dyld_kernel_image_info_t;
-typedef struct dyld_kernel_process_info dyld_kernel_process_info_t;
-typedef dyld_kernel_image_info_t *dyld_kernel_image_info_array_t;
-
-#endif /* _MACH_DYLIB_INFO_H_ */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/error.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/error.h
deleted file mode 100644
index 50c77b9c..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/error.h
+++ /dev/null
@@ -1,114 +0,0 @@
-/*
- * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-/*
- * Mach Operating System
- * Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University
- * All Rights Reserved.
- *
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- */
-/*
- */
-/*
- * File:	mach/error.h
- * Purpose:
- *	error module definitions
- *
- */
-
-#ifndef _MACH_ERROR_H_
-#define _MACH_ERROR_H_
-
-#include <mach/kern_return.h>
-
-/*
- *	error number layout as follows:
- *
- *	hi		                       lo
- *	| system(6) | subsystem(12) | code(14) |
- */
-
-
-#define err_none                (mach_error_t)0
-#define ERR_SUCCESS             (mach_error_t)0
-#define ERR_ROUTINE_NIL         (mach_error_fn_t)0
-
-
-#define err_system(x)           ((signed)((((unsigned)(x))&0x3f)<<26))
-#define err_sub(x)              (((x)&0xfff)<<14)
-
-#define err_get_system(err)     (((err)>>26)&0x3f)
-#define err_get_sub(err)        (((err)>>14)&0xfff)
-#define err_get_code(err)       ((err)&0x3fff)
-
-#define system_emask            (err_system(0x3f))
-#define sub_emask               (err_sub(0xfff))
-#define code_emask              (0x3fff)
-
-
-/*	major error systems	*/
-#define err_kern                err_system(0x0)         /* kernel */
-#define err_us                  err_system(0x1)         /* user space library */
-#define err_server              err_system(0x2)         /* user space servers */
-#define err_ipc                 err_system(0x3)         /* old ipc errors */
-#define err_mach_ipc            err_system(0x4)         /* mach-ipc errors */
-#define err_dipc                err_system(0x7)         /* distributed ipc */
-#define err_local               err_system(0x3e)        /* user defined errors */
-#define err_ipc_compat          err_system(0x3f)        /* (compatibility) mach-ipc errors */
-
-#define err_max_system          0x3f
-
-
-/*	unix errors get lumped into one subsystem  */
-#define unix_err(errno)         (err_kern|err_sub(3)|errno)
-
-typedef kern_return_t   mach_error_t;
-typedef mach_error_t    (* mach_error_fn_t)( void );
-
-#endif  /* _MACH_ERROR_H_ */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/exc.defs b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/exc.defs
deleted file mode 100644
index 734e7408..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/exc.defs
+++ /dev/null
@@ -1,133 +0,0 @@
-/*
- * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- * 
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- * 
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- * 
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- * 
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-/* 
- * Mach Operating System
- * Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University
- * All Rights Reserved.
- * 
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- * 
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- * 
- * Carnegie Mellon requests users of this software to return to
- * 
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- * 
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- */
-/*
- */
-/*
- * Abstract:
- *	MiG definitions file for Mach exception interface.
- */
-
-subsystem
-#if	KERNEL_SERVER
-	  KernelServer
-#endif	/* KERNEL_SERVER */
-
-#if	KERNEL_USER
-	  KernelUser
-#endif
-		     exc 2401;
-
-#include <mach/std_types.defs>
-#include <mach/mach_types.defs>
-
-ServerPrefix catch_;
-
-type exception_data_t		= array[*:2] of integer_t;
-type exception_type_t		= int;
-
-routine		exception_raise(
-			exception_port	: mach_port_t;
-			thread		: mach_port_t;
-			task		: mach_port_t;
-			exception	: exception_type_t;
-			code		: exception_data_t
-#if EXC_SERVER_SECTOKEN
- ;
- ServerSecToken stoken	: security_token_t
-#endif
-#if EXC_SERVER_AUDITTOKEN
- ;
- ServerAuditToken atoken: audit_token_t
-#endif
-			);
-
-routine		exception_raise_state(
-			exception_port	: mach_port_t;
-			exception	: exception_type_t;
-			code		: exception_data_t, const;
-		  inout flavor		: int;
-			old_state	: thread_state_t, const;
-		    out new_state	: thread_state_t
-#if EXC_SERVER_SECTOKEN
- ;
- ServerSecToken stoken	: security_token_t
-#endif
-#if EXC_SERVER_AUDITTOKEN
- ;
- ServerAuditToken atoken: audit_token_t
-#endif
-			);
-
-routine		exception_raise_state_identity(
-			exception_port  : mach_port_t;
-			thread          : mach_port_t;
-			task            : mach_port_t;
-			exception       : exception_type_t;
-			code            : exception_data_t;
-		  inout flavor          : int;
-			old_state       : thread_state_t;
-		    out new_state       : thread_state_t
-#if EXC_SERVER_SECTOKEN
- ;
- ServerSecToken stoken	: security_token_t
-#endif
-#if EXC_SERVER_AUDITTOKEN
- ;
- ServerAuditToken atoken: audit_token_t
-#endif
-			);
-
-/* vim: set ft=c : */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/exc.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/exc.h
deleted file mode 100644
index f02096b2..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/exc.h
+++ /dev/null
@@ -1,281 +0,0 @@
-#ifndef	_exc_user_
-#define	_exc_user_
-
-/* Module exc */
-
-#include <string.h>
-#include <mach/ndr.h>
-#include <mach/boolean.h>
-#include <mach/kern_return.h>
-#include <mach/notify.h>
-#include <mach/mach_types.h>
-#include <mach/message.h>
-#include <mach/mig_errors.h>
-#include <mach/port.h>
-	
-/* BEGIN MIG_STRNCPY_ZEROFILL CODE */
-
-#if defined(__has_include)
-#if __has_include(<mach/mig_strncpy_zerofill_support.h>)
-#ifndef USING_MIG_STRNCPY_ZEROFILL
-#define USING_MIG_STRNCPY_ZEROFILL
-#endif
-#ifndef __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
-#define __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
-#ifdef __cplusplus
-extern "C" {
-#endif
-	extern int mig_strncpy_zerofill(char *dest, const char *src, int len) __attribute__((weak_import));
-#ifdef __cplusplus
-}
-#endif
-#endif /* __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__ */
-#endif /* __has_include(<mach/mig_strncpy_zerofill_support.h>) */
-#endif /* __has_include */
-	
-/* END MIG_STRNCPY_ZEROFILL CODE */
-
-
-#ifdef AUTOTEST
-#ifndef FUNCTION_PTR_T
-#define FUNCTION_PTR_T
-typedef void (*function_ptr_t)(mach_port_t, char *, mach_msg_type_number_t);
-typedef struct {
-        char            *name;
-        function_ptr_t  function;
-} function_table_entry;
-typedef function_table_entry   *function_table_t;
-#endif /* FUNCTION_PTR_T */
-#endif /* AUTOTEST */
-
-#ifndef	exc_MSG_COUNT
-#define	exc_MSG_COUNT	3
-#endif	/* exc_MSG_COUNT */
-
-#include <mach/std_types.h>
-#include <mach/mig.h>
-#include <mach/mig.h>
-#include <mach/mach_types.h>
-
-#ifdef __BeforeMigUserHeader
-__BeforeMigUserHeader
-#endif /* __BeforeMigUserHeader */
-
-#include <sys/cdefs.h>
-__BEGIN_DECLS
-
-
-/* Routine exception_raise */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t exception_raise
-(
-	mach_port_t exception_port,
-	mach_port_t thread,
-	mach_port_t task,
-	exception_type_t exception,
-	exception_data_t code,
-	mach_msg_type_number_t codeCnt
-);
-
-/* Routine exception_raise_state */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t exception_raise_state
-(
-	mach_port_t exception_port,
-	exception_type_t exception,
-	const exception_data_t code,
-	mach_msg_type_number_t codeCnt,
-	int *flavor,
-	const thread_state_t old_state,
-	mach_msg_type_number_t old_stateCnt,
-	thread_state_t new_state,
-	mach_msg_type_number_t *new_stateCnt
-);
-
-/* Routine exception_raise_state_identity */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t exception_raise_state_identity
-(
-	mach_port_t exception_port,
-	mach_port_t thread,
-	mach_port_t task,
-	exception_type_t exception,
-	exception_data_t code,
-	mach_msg_type_number_t codeCnt,
-	int *flavor,
-	thread_state_t old_state,
-	mach_msg_type_number_t old_stateCnt,
-	thread_state_t new_state,
-	mach_msg_type_number_t *new_stateCnt
-);
-
-__END_DECLS
-
-/********************** Caution **************************/
-/* The following data types should be used to calculate  */
-/* maximum message sizes only. The actual message may be */
-/* smaller, and the position of the arguments within the */
-/* message layout may vary from what is presented here.  */
-/* For example, if any of the arguments are variable-    */
-/* sized, and less than the maximum is sent, the data    */
-/* will be packed tight in the actual message to reduce  */
-/* the presence of holes.                                */
-/********************** Caution **************************/
-
-/* typedefs for all requests */
-
-#ifndef __Request__exc_subsystem__defined
-#define __Request__exc_subsystem__defined
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t thread;
-		mach_msg_port_descriptor_t task;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		exception_type_t exception;
-		mach_msg_type_number_t codeCnt;
-		integer_t code[2];
-	} __Request__exception_raise_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		exception_type_t exception;
-		mach_msg_type_number_t codeCnt;
-		integer_t code[2];
-		int flavor;
-		mach_msg_type_number_t old_stateCnt;
-		natural_t old_state[614];
-	} __Request__exception_raise_state_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t thread;
-		mach_msg_port_descriptor_t task;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		exception_type_t exception;
-		mach_msg_type_number_t codeCnt;
-		integer_t code[2];
-		int flavor;
-		mach_msg_type_number_t old_stateCnt;
-		natural_t old_state[614];
-	} __Request__exception_raise_state_identity_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-#endif /* !__Request__exc_subsystem__defined */
-
-/* union of all requests */
-
-#ifndef __RequestUnion__exc_subsystem__defined
-#define __RequestUnion__exc_subsystem__defined
-union __RequestUnion__exc_subsystem {
-	__Request__exception_raise_t Request_exception_raise;
-	__Request__exception_raise_state_t Request_exception_raise_state;
-	__Request__exception_raise_state_identity_t Request_exception_raise_state_identity;
-};
-#endif /* !__RequestUnion__exc_subsystem__defined */
-/* typedefs for all replies */
-
-#ifndef __Reply__exc_subsystem__defined
-#define __Reply__exc_subsystem__defined
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__exception_raise_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		int flavor;
-		mach_msg_type_number_t new_stateCnt;
-		natural_t new_state[614];
-	} __Reply__exception_raise_state_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		int flavor;
-		mach_msg_type_number_t new_stateCnt;
-		natural_t new_state[614];
-	} __Reply__exception_raise_state_identity_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-#endif /* !__Reply__exc_subsystem__defined */
-
-/* union of all replies */
-
-#ifndef __ReplyUnion__exc_subsystem__defined
-#define __ReplyUnion__exc_subsystem__defined
-union __ReplyUnion__exc_subsystem {
-	__Reply__exception_raise_t Reply_exception_raise;
-	__Reply__exception_raise_state_t Reply_exception_raise_state;
-	__Reply__exception_raise_state_identity_t Reply_exception_raise_state_identity;
-};
-#endif /* !__RequestUnion__exc_subsystem__defined */
-
-#ifndef subsystem_to_name_map_exc
-#define subsystem_to_name_map_exc \
-    { "exception_raise", 2401 },\
-    { "exception_raise_state", 2402 },\
-    { "exception_raise_state_identity", 2403 }
-#endif
-
-#ifdef __AfterMigUserHeader
-__AfterMigUserHeader
-#endif /* __AfterMigUserHeader */
-
-#endif	 /* _exc_user_ */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/exception.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/exception.h
deleted file mode 100644
index 7baea703..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/exception.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-/*
- * Mach Operating System
- * Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University
- * All Rights Reserved.
- *
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- */
-
-#ifndef _MACH_EXCEPTION_H_
-#define _MACH_EXCEPTION_H_
-
-#include <mach/exception_types.h>
-
-#endif  /* _MACH_EXCEPTION_H_ */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/exception_types.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/exception_types.h
deleted file mode 100644
index ccbcf0bb..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/exception_types.h
+++ /dev/null
@@ -1,204 +0,0 @@
-/*
- * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-/*
- * Mach Operating System
- * Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University
- * All Rights Reserved.
- *
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- */
-/*
- */
-
-#ifndef _MACH_EXCEPTION_TYPES_H_
-#define _MACH_EXCEPTION_TYPES_H_
-
-#include <mach/machine/exception.h>
-
-/*
- *	Machine-independent exception definitions.
- */
-
-#define EXC_BAD_ACCESS          1       /* Could not access memory */
-/* Code contains kern_return_t describing error. */
-/* Subcode contains bad memory address. */
-
-#define EXC_BAD_INSTRUCTION     2       /* Instruction failed */
-/* Illegal or undefined instruction or operand */
-
-#define EXC_ARITHMETIC          3       /* Arithmetic exception */
-/* Exact nature of exception is in code field */
-
-#define EXC_EMULATION           4       /* Emulation instruction */
-/* Emulation support instruction encountered */
-/* Details in code and subcode fields	*/
-
-#define EXC_SOFTWARE            5       /* Software generated exception */
-/* Exact exception is in code field. */
-/* Codes 0 - 0xFFFF reserved to hardware */
-/* Codes 0x10000 - 0x1FFFF reserved for OS emulation (Unix) */
-
-#define EXC_BREAKPOINT          6       /* Trace, breakpoint, etc. */
-/* Details in code field. */
-
-#define EXC_SYSCALL             7       /* System calls. */
-
-#define EXC_MACH_SYSCALL        8       /* Mach system calls. */
-
-#define EXC_RPC_ALERT           9       /* RPC alert */
-
-#define EXC_CRASH               10      /* Abnormal process exit */
-
-#define EXC_RESOURCE            11      /* Hit resource consumption limit */
-/* Exact resource is in code field. */
-
-#define EXC_GUARD               12      /* Violated guarded resource protections */
-
-#define EXC_CORPSE_NOTIFY       13      /* Abnormal process exited to corpse state */
-
-#define EXC_CORPSE_VARIANT_BIT  0x100  /* bit set for EXC_*_CORPSE variants of EXC_* */
-
-
-/*
- *	Machine-independent exception behaviors
- */
-
-# define EXCEPTION_DEFAULT              1
-/*	Send a catch_exception_raise message including the identity.
- */
-
-# define EXCEPTION_STATE                2
-/*	Send a catch_exception_raise_state message including the
- *	thread state.
- */
-
-# define EXCEPTION_STATE_IDENTITY       3
-/*	Send a catch_exception_raise_state_identity message including
- *	the thread identity and state.
- */
-
-#define MACH_EXCEPTION_ERRORS           0x40000000
-/*	include additional exception specific errors, not used yet.  */
-
-#define MACH_EXCEPTION_CODES            0x80000000
-/*	Send 64-bit code and subcode in the exception header */
-
-#define MACH_EXCEPTION_MASK             (MACH_EXCEPTION_CODES | MACH_EXCEPTION_ERRORS)
-/*
- * Masks for exception definitions, above
- * bit zero is unused, therefore 1 word = 31 exception types
- */
-
-#define EXC_MASK_BAD_ACCESS             (1 << EXC_BAD_ACCESS)
-#define EXC_MASK_BAD_INSTRUCTION        (1 << EXC_BAD_INSTRUCTION)
-#define EXC_MASK_ARITHMETIC             (1 << EXC_ARITHMETIC)
-#define EXC_MASK_EMULATION              (1 << EXC_EMULATION)
-#define EXC_MASK_SOFTWARE               (1 << EXC_SOFTWARE)
-#define EXC_MASK_BREAKPOINT             (1 << EXC_BREAKPOINT)
-#define EXC_MASK_SYSCALL                (1 << EXC_SYSCALL)
-#define EXC_MASK_MACH_SYSCALL           (1 << EXC_MACH_SYSCALL)
-#define EXC_MASK_RPC_ALERT              (1 << EXC_RPC_ALERT)
-#define EXC_MASK_CRASH                  (1 << EXC_CRASH)
-#define EXC_MASK_RESOURCE               (1 << EXC_RESOURCE)
-#define EXC_MASK_GUARD                  (1 << EXC_GUARD)
-#define EXC_MASK_CORPSE_NOTIFY          (1 << EXC_CORPSE_NOTIFY)
-
-#define EXC_MASK_ALL    (EXC_MASK_BAD_ACCESS |                  \
-	                 EXC_MASK_BAD_INSTRUCTION |             \
-	                 EXC_MASK_ARITHMETIC |                  \
-	                 EXC_MASK_EMULATION |                   \
-	                 EXC_MASK_SOFTWARE |                    \
-	                 EXC_MASK_BREAKPOINT |                  \
-	                 EXC_MASK_SYSCALL |                     \
-	                 EXC_MASK_MACH_SYSCALL |                \
-	                 EXC_MASK_RPC_ALERT |                   \
-	                 EXC_MASK_RESOURCE |                    \
-	                 EXC_MASK_GUARD |                       \
-	                 EXC_MASK_MACHINE)
-
-
-#define FIRST_EXCEPTION         1       /* ZERO is illegal */
-
-/*
- * Machine independent codes for EXC_SOFTWARE
- * Codes 0x10000 - 0x1FFFF reserved for OS emulation (Unix)
- * 0x10000 - 0x10002 in use for unix signals
- * 0x20000 - 0x2FFFF reserved for MACF
- */
-#define EXC_SOFT_SIGNAL         0x10003 /* Unix signal exceptions */
-
-#define EXC_MACF_MIN            0x20000 /* MACF exceptions */
-#define EXC_MACF_MAX            0x2FFFF
-
-#ifndef ASSEMBLER
-
-#include <mach/port.h>
-#include <mach/thread_status.h>
-#include <mach/machine/vm_types.h>
-/*
- * Exported types
- */
-
-typedef int                             exception_type_t;
-typedef integer_t                       exception_data_type_t;
-typedef int64_t                         mach_exception_data_type_t;
-typedef int                             exception_behavior_t;
-typedef exception_data_type_t           *exception_data_t;
-typedef mach_exception_data_type_t      *mach_exception_data_t;
-typedef unsigned int                    exception_mask_t;
-typedef exception_mask_t                *exception_mask_array_t;
-typedef exception_behavior_t            *exception_behavior_array_t;
-typedef thread_state_flavor_t           *exception_flavor_array_t;
-typedef mach_port_t                     *exception_port_array_t;
-typedef mach_exception_data_type_t      mach_exception_code_t;
-typedef mach_exception_data_type_t      mach_exception_subcode_t;
-
-#endif  /* ASSEMBLER */
-
-#endif  /* _MACH_EXCEPTION_TYPES_H_ */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/host_info.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/host_info.h
deleted file mode 100644
index 648d25ca..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/host_info.h
+++ /dev/null
@@ -1,260 +0,0 @@
-/*
- * Copyright (c) 2000-2015 Apple Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-/*
- * Mach Operating System
- * Copyright (c) 1991,1990,1989,1988 Carnegie Mellon University
- * All Rights Reserved.
- *
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- */
-
-/*
- *	File:	mach/host_info.h
- *
- *	Definitions for host_info call.
- */
-
-#ifndef _MACH_HOST_INFO_H_
-#define _MACH_HOST_INFO_H_
-
-#include <mach/message.h>
-#include <mach/vm_statistics.h>
-#include <mach/machine.h>
-#include <mach/machine/vm_types.h>
-#include <mach/time_value.h>
-
-#include <sys/cdefs.h>
-
-/*
- *	Generic information structure to allow for expansion.
- */
-typedef integer_t       *host_info_t;           /* varying array of int. */
-typedef integer_t       *host_info64_t;         /* varying array of int. */
-
-#define HOST_INFO_MAX   (1024)          /* max array size */
-typedef integer_t       host_info_data_t[HOST_INFO_MAX];
-
-#define KERNEL_VERSION_MAX (512)
-typedef char    kernel_version_t[KERNEL_VERSION_MAX];
-
-#define KERNEL_BOOT_INFO_MAX (4096)
-typedef char    kernel_boot_info_t[KERNEL_BOOT_INFO_MAX];
-
-/*
- *	Currently defined information.
- */
-/* host_info() */
-typedef integer_t       host_flavor_t;
-#define HOST_BASIC_INFO         1       /* basic info */
-#define HOST_SCHED_INFO         3       /* scheduling info */
-#define HOST_RESOURCE_SIZES     4       /* kernel struct sizes */
-#define HOST_PRIORITY_INFO      5       /* priority information */
-#define HOST_SEMAPHORE_TRAPS    7       /* Has semaphore traps */
-#define HOST_MACH_MSG_TRAP      8       /* Has mach_msg_trap */
-#define HOST_VM_PURGABLE        9       /* purg'e'able memory info */
-#define HOST_DEBUG_INFO_INTERNAL 10     /* Used for kernel internal development tests only */
-#define HOST_CAN_HAS_DEBUGGER   11
-#define HOST_PREFERRED_USER_ARCH 12     /* Get the preferred user-space architecture */
-
-
-struct host_can_has_debugger_info {
-	boolean_t       can_has_debugger;
-};
-typedef struct host_can_has_debugger_info       host_can_has_debugger_info_data_t;
-typedef struct host_can_has_debugger_info       *host_can_has_debugger_info_t;
-#define HOST_CAN_HAS_DEBUGGER_COUNT ((mach_msg_type_number_t) \
-	        (sizeof(host_can_has_debugger_info_data_t)/sizeof(integer_t)))
-
-#pragma pack(push, 4)
-
-struct host_basic_info {
-	integer_t               max_cpus;               /* max number of CPUs possible */
-	integer_t               avail_cpus;             /* number of CPUs now available */
-	natural_t               memory_size;            /* size of memory in bytes, capped at 2 GB */
-	cpu_type_t              cpu_type;               /* cpu type */
-	cpu_subtype_t           cpu_subtype;            /* cpu subtype */
-	cpu_threadtype_t        cpu_threadtype;         /* cpu threadtype */
-	integer_t               physical_cpu;           /* number of physical CPUs now available */
-	integer_t               physical_cpu_max;       /* max number of physical CPUs possible */
-	integer_t               logical_cpu;            /* number of logical cpu now available */
-	integer_t               logical_cpu_max;        /* max number of physical CPUs possible */
-	uint64_t                max_mem;                /* actual size of physical memory */
-};
-
-#pragma pack(pop)
-
-typedef struct host_basic_info  host_basic_info_data_t;
-typedef struct host_basic_info  *host_basic_info_t;
-#define HOST_BASIC_INFO_COUNT ((mach_msg_type_number_t) \
-	        (sizeof(host_basic_info_data_t)/sizeof(integer_t)))
-
-struct host_sched_info {
-	integer_t       min_timeout;    /* minimum timeout in milliseconds */
-	integer_t       min_quantum;    /* minimum quantum in milliseconds */
-};
-
-typedef struct host_sched_info  host_sched_info_data_t;
-typedef struct host_sched_info  *host_sched_info_t;
-#define HOST_SCHED_INFO_COUNT ((mach_msg_type_number_t) \
-	        (sizeof(host_sched_info_data_t)/sizeof(integer_t)))
-
-struct kernel_resource_sizes {
-	natural_t       task;
-	natural_t       thread;
-	natural_t       port;
-	natural_t       memory_region;
-	natural_t       memory_object;
-};
-
-typedef struct kernel_resource_sizes    kernel_resource_sizes_data_t;
-typedef struct kernel_resource_sizes    *kernel_resource_sizes_t;
-#define HOST_RESOURCE_SIZES_COUNT ((mach_msg_type_number_t) \
-	        (sizeof(kernel_resource_sizes_data_t)/sizeof(integer_t)))
-
-struct host_priority_info {
-	integer_t       kernel_priority;
-	integer_t       system_priority;
-	integer_t       server_priority;
-	integer_t       user_priority;
-	integer_t       depress_priority;
-	integer_t       idle_priority;
-	integer_t       minimum_priority;
-	integer_t       maximum_priority;
-};
-
-typedef struct host_priority_info       host_priority_info_data_t;
-typedef struct host_priority_info       *host_priority_info_t;
-#define HOST_PRIORITY_INFO_COUNT ((mach_msg_type_number_t) \
-	        (sizeof(host_priority_info_data_t)/sizeof(integer_t)))
-
-/* host_statistics() */
-#define HOST_LOAD_INFO          1       /* System loading stats */
-#define HOST_VM_INFO            2       /* Virtual memory stats */
-#define HOST_CPU_LOAD_INFO      3       /* CPU load stats */
-
-/* host_statistics64() */
-#define HOST_VM_INFO64          4       /* 64-bit virtual memory stats */
-#define HOST_EXTMOD_INFO64      5       /* External modification stats */
-#define HOST_EXPIRED_TASK_INFO  6       /* Statistics for expired tasks */
-
-
-struct host_load_info {
-	integer_t       avenrun[3];     /* scaled by LOAD_SCALE */
-	integer_t       mach_factor[3]; /* scaled by LOAD_SCALE */
-};
-
-typedef struct host_load_info   host_load_info_data_t;
-typedef struct host_load_info   *host_load_info_t;
-#define HOST_LOAD_INFO_COUNT ((mach_msg_type_number_t) \
-	        (sizeof(host_load_info_data_t)/sizeof(integer_t)))
-
-typedef struct vm_purgeable_info        host_purgable_info_data_t;
-typedef struct vm_purgeable_info        *host_purgable_info_t;
-#define HOST_VM_PURGABLE_COUNT ((mach_msg_type_number_t) \
-	        (sizeof(host_purgable_info_data_t)/sizeof(integer_t)))
-
-/* in <mach/vm_statistics.h> */
-/* vm_statistics64 */
-#define HOST_VM_INFO64_COUNT ((mach_msg_type_number_t) \
-	        (sizeof(vm_statistics64_data_t)/sizeof(integer_t)))
-
-/* size of the latest version of the structure */
-#define HOST_VM_INFO64_LATEST_COUNT HOST_VM_INFO64_COUNT
-#define HOST_VM_INFO64_REV1_COUNT HOST_VM_INFO64_LATEST_COUNT
-/* previous versions: adjust the size according to what was added each time */
-#define HOST_VM_INFO64_REV0_COUNT /* added compression and swapper info (14 ints) */ \
-	((mach_msg_type_number_t) \
-	 (HOST_VM_INFO64_REV1_COUNT - 14))
-
-/* in <mach/vm_statistics.h> */
-/* vm_extmod_statistics */
-#define HOST_EXTMOD_INFO64_COUNT ((mach_msg_type_number_t) \
-	    (sizeof(vm_extmod_statistics_data_t)/sizeof(integer_t)))
-
-/* size of the latest version of the structure */
-#define HOST_EXTMOD_INFO64_LATEST_COUNT HOST_EXTMOD_INFO64_COUNT
-
-/* vm_statistics */
-#define HOST_VM_INFO_COUNT ((mach_msg_type_number_t) \
-	        (sizeof(vm_statistics_data_t)/sizeof(integer_t)))
-
-/* size of the latest version of the structure */
-#define HOST_VM_INFO_LATEST_COUNT HOST_VM_INFO_COUNT
-#define HOST_VM_INFO_REV2_COUNT HOST_VM_INFO_LATEST_COUNT
-/* previous versions: adjust the size according to what was added each time */
-#define HOST_VM_INFO_REV1_COUNT /* added "speculative_count" (1 int) */ \
-	((mach_msg_type_number_t) \
-	 (HOST_VM_INFO_REV2_COUNT - 1))
-#define HOST_VM_INFO_REV0_COUNT /* added "purgable" info (2 ints) */    \
-	((mach_msg_type_number_t) \
-	 (HOST_VM_INFO_REV1_COUNT - 2))
-
-struct host_cpu_load_info {             /* number of ticks while running... */
-	natural_t       cpu_ticks[CPU_STATE_MAX]; /* ... in the given mode */
-};
-
-typedef struct host_cpu_load_info       host_cpu_load_info_data_t;
-typedef struct host_cpu_load_info       *host_cpu_load_info_t;
-#define HOST_CPU_LOAD_INFO_COUNT ((mach_msg_type_number_t) \
-	        (sizeof (host_cpu_load_info_data_t) / sizeof (integer_t)))
-
-struct host_preferred_user_arch {
-	cpu_type_t      cpu_type;       /* Preferred user-space cpu type */
-	cpu_subtype_t   cpu_subtype;    /* Preferred user-space cpu subtype */
-};
-
-typedef struct host_preferred_user_arch host_preferred_user_arch_data_t;
-typedef struct host_preferred_user_arch *host_preferred_user_arch_t;
-#define HOST_PREFERRED_USER_ARCH_COUNT ((mach_msg_type_number_t) \
-	        (sizeof(host_preferred_user_arch_data_t)/sizeof(integer_t)))
-
-
-
-
-#endif  /* _MACH_HOST_INFO_H_ */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/host_notify.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/host_notify.h
deleted file mode 100644
index cda654bf..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/host_notify.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright (c) 2003 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-
-#ifndef _MACH_HOST_NOTIFY_H_
-#define _MACH_HOST_NOTIFY_H_
-
-#define HOST_NOTIFY_CALENDAR_CHANGE             0
-#define HOST_NOTIFY_CALENDAR_SET                1
-#define HOST_NOTIFY_TYPE_MAX                    1
-
-#define HOST_CALENDAR_CHANGED_REPLYID   950
-#define HOST_CALENDAR_SET_REPLYID               951
-
-#endif /* _MACH_HOST_NOTIFY_H_ */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/host_notify_reply.defs b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/host_notify_reply.defs
deleted file mode 100644
index 469777cb..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/host_notify_reply.defs
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright (c) 2003 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- * 
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- * 
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- * 
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- * 
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-
-subsystem
-#if	KERNEL_USER
-		KernelUser
-#endif	/* KERN_USER */
-			host_notify_reply 950;
-
-#include <mach/std_types.defs>
-
-simpleroutine host_calendar_changed(
-		notify_port	: mach_port_move_send_once_t);
-
-simpleroutine host_calendar_set(
-		notify_port	: mach_port_move_send_once_t);
-
-/* vim: set ft=c : */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/host_priv.defs b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/host_priv.defs
deleted file mode 100644
index 83f601b5..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/host_priv.defs
+++ /dev/null
@@ -1,359 +0,0 @@
-/*
- * Copyright (c) 2000-2004 Apple Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- * 
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- * 
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- * 
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- * 
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-/* 
- * Mach Operating System
- * Copyright (c) 1991,1990,1989,1988 Carnegie Mellon University
- * All Rights Reserved.
- * 
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- * 
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- * 
- * Carnegie Mellon requests users of this software to return to
- * 
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- * 
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- */
-/*
- */
-
-/*
- *	Matchmaker definitions file for Mach kernel interface.
- */
-subsystem
-#if	KERNEL_USER
-	  KernelUser
-#endif	/* KERNEL_USER */
-#if	KERNEL_SERVER
-	  KernelServer
-#endif	/* KERNEL_SERVER */
-		       host_priv 400;
-
-#ifdef	KERNEL_USER
-userprefix r_;
-#endif	/* KERNEL_USER */
-
-#define CONCAT(a,b) a ## b
-#if	KERNEL_SERVER
-#define KERNEL_SERVER_SUFFIX(NAME) CONCAT(NAME, _external)
-#else
-#define KERNEL_SERVER_SUFFIX(NAME) NAME
-#endif
-
-#include <mach/std_types.defs>
-#include <mach/mach_types.defs>
-#include <mach/clock_types.defs>
-#include <mach_debug/mach_debug_types.defs>
-
-/*
- *      Get boot configuration information from kernel.
- */
-routine host_get_boot_info(
-		host_priv	: host_priv_t;
-	out	boot_info	: kernel_boot_info_t);
-
-/*
- *	Reboot this host.
- *	Only available to privileged users.
- */
-routine host_reboot(
-		host_priv	: host_priv_t;
-		options		: int);
-
-
-/*
- *	Return privileged statistics from this host.
- */
-routine host_priv_statistics(
-		host_priv	: host_priv_t;
-		flavor		: host_flavor_t;
-	out	host_info_out	: host_info_t, CountInOut);
-
-/*
- *	Sets the default memory manager, the port to which
- *	newly-created temporary memory objects are delivered.
- *	[See (memory_object_default)memory_object_create.]
- *	Also sets the default cluster size used for pagein/pageout
- *	to this port.
- *	The old memory manager port is returned.
- */
-routine host_default_memory_manager(
-		host_priv	: host_priv_t;
-	inout	default_manager	: memory_object_default_t = 
-					MACH_MSG_TYPE_MAKE_SEND;
-		cluster_size	: memory_object_cluster_size_t);
-
-
-/*
- *	Specify that the range of the virtual address space
- *	of the target task must not cause page faults for
- *	the indicated accesses.
- *
- *	[ To unwire the pages, specify VM_PROT_NONE. ]
- */
-routine	vm_wire(
-		host_priv	: host_priv_t;
-		task		: vm_map_t;
-		address		: vm_address_t;
-		size		: vm_size_t;
-		desired_access	: vm_prot_t);
-
-/*
- *	Specify that the target thread must always be able
- *	to run and to allocate memory.
- */
-routine	thread_wire(
-		host_priv	: host_priv_t;
-		thread		: thread_act_t;
-		wired		: boolean_t);
-
-/*
- *	Allocate zero-filled, wired, contiguous physical memory
- *	in the address space of the target task, either at the
- *	specified address, or wherever space can be found (if
- *	anywhere is TRUE), of the specified size.  The address
- *	at which the allocation actually took place is returned.
- *	All pages will be entered into the task's pmap immediately,
- *	with VM_PROT_ALL.
- *
- *	In addition to all the failure modes of its cousin,
- *	vm_allocate, this call may also fail if insufficient
- *	contiguous memory exists to satisfy the request.
- *
- *	Memory obtained from this call should be freed the
- *	normal way, via vm_deallocate.
- *
- *	N.B.  This is an EXPERIMENTAL interface!
- */
-routine	vm_allocate_cpm(
-		host_priv	: host_priv_t;
-		task		: vm_map_t;
-	inout	address		: vm_address_t;
-		size		: vm_size_t;
-		flags		: int);
-
-/*
- *	Get list of processors on this host.
- */
-routine host_processors(
-		host_priv		: host_priv_t;
-	out	out_processor_list	: processor_array_t);
-
-
-/*
- *	Get control port for a system-wide clock.
- *	Privileged.
- */
-routine host_get_clock_control(
-		host_priv	: host_priv_t;
-		clock_id	: clock_id_t;
-	out	clock_ctrl	: clock_ctrl_t);
-
-
-/*
- * kernel module interface (obsolete as of SnowLeopard)
- * see mach/kmod.h
- */
-/* kmod_ MIG calls now return KERN_NOT_SUPPORTED on PPC/i386/x86_64. */
-routine kmod_create(
-		host_priv	: host_priv_t;
-		info		: vm_address_t;
-	out	module		: kmod_t);
-
-routine kmod_destroy(
-		host_priv	: host_priv_t;
-		module		: kmod_t);
-
-routine	kmod_control(
-		host_priv	: host_priv_t;
-		module		: kmod_t;
-		flavor		: kmod_control_flavor_t;
-	inout	data		: kmod_args_t);
-
-/*
- * 	Get a given special port for a given node.
- * 	Special ports are defined in host_special_ports.h;
- * 	examples include the master device port.
- * 	There are a limited number of slots available for system servers.
- */
-routine host_get_special_port(
-                host_priv       : host_priv_t;
-                node            : int;
-                which           : int;
-        out     port            : mach_port_t);
-
-/*
- * 	Set a given special port for the local node.
- * 	See host_get_special_port.
- */
-routine host_set_special_port(
-                host_priv       : host_priv_t;
-                which           : int;
-                port            : mach_port_t);
-
-/*
- * Set an exception handler for a host on one or more exception types.
- * These handlers are invoked for all threads on the host if there are
- * no task or thread-specific exception handlers or those handlers returned
- * an error.
- */
-routine	host_set_exception_ports(
-		host_priv	: host_priv_t;
-		exception_mask	: exception_mask_t;
-		new_port	: mach_port_t;
-		behavior	: exception_behavior_t;
-		new_flavor	: thread_state_flavor_t);
-
-
-/*
- * Lookup some of the old exception handlers for a host
- */
-routine	host_get_exception_ports(
-		host_priv	: host_priv_t;
-		exception_mask	: exception_mask_t;
-	  out	masks		: exception_mask_array_t;
-	  out	old_handlers	: exception_handler_array_t, SameCount;
-	  out	old_behaviors	: exception_behavior_array_t, SameCount;
-	  out	old_flavors	: exception_flavor_array_t, SameCount);
-
-
-/*
- * Set an exception handler for a host on one or more exception types.
- * At the same time, return the previously defined exception handlers for
- * those types.
- */
-routine	host_swap_exception_ports(
-		host_priv	: host_priv_t;
-		exception_mask	: exception_mask_t;
-		new_port	: mach_port_t;
-		behavior	: exception_behavior_t;
-		new_flavor	: thread_state_flavor_t;
-	  out	masks		: exception_mask_array_t;
-	  out	old_handlerss	: exception_handler_array_t, SameCount;
-	  out	old_behaviors	: exception_behavior_array_t, SameCount;
-	  out	old_flavors	: exception_flavor_array_t, SameCount);
-
-skip; /* old host_load_symbol_table */
-
-/*
- *	Specify that the range of the virtual address space
- *	of the target task must not cause page faults for
- *	the indicated accesses.
- *
- *	[ To unwire the pages, specify VM_PROT_NONE. ]
- */
-routine	KERNEL_SERVER_SUFFIX(mach_vm_wire)(
-		host_priv	: host_priv_t;
-		task		: vm_map_t;
-		address		: mach_vm_address_t;
-		size		: mach_vm_size_t;
-		desired_access	: vm_prot_t);
-
-/*
- * JMM - Keep all processor_set related items at the end for easy
- * removal.
- */
-/*
- *	List all processor sets on host.
- */
-routine host_processor_sets(
-		host_priv	: host_priv_t;
-	out	processor_sets	: processor_set_name_array_t);
-
-/*
- *	Get control port for a processor set.
- */
-routine host_processor_set_priv(
-		host_priv	: host_priv_t;
-		set_name	: processor_set_name_t;
-	out	set		: processor_set_t);
-
-/************************** Warning *************************************/
-/*       The following routines are going away in a future release	*/
-/*	use the appropriate variant of host_set_special_port instead	*/
-/************************************************************************/
-
-skip;/* old set_dp_control_port */
-skip;/* old get_dp_control_port */
-
-/*
- *	Set the UserNotification daemon access port for this host. 
- *	If this value is already set, the kernel will discard its
- *	reference to the previously registered port.
- */
-routine host_set_UNDServer(    
-		host		: host_priv_t;
-	in	server		: UNDServerRef);
-
-/*
- *	Get the UserNotification daemon access port for this host.
- *	This can then be used to communicate with that daemon, which
- *	in turn communicates with the User through whatever means
- *	available (pop-up-menus for GUI systems, text for non-GUI, etc..).
- *
- *	Access to this port is restricted to privileged clients because
- *	it is a special purpose port intended for kernel clients.  User
- *	level clients should go directly to the CFUserNotifcation services.
- */
-routine host_get_UNDServer(    
-		host		: host_priv_t;
-	out	server		: UNDServerRef);
-
-/*
- * Perform an operation with a kernel extension, on the kext loading system,
- * or request information about loaded kexts or the state of the kext loading
- * system.
- * Active operations (load, unload, disable/enable) require host_priv/root access.
- * Info retrieval does not.
- *
- * WARNING: THIS ROUTINE IS PRIVATE TO THE KEXT-MANAGEMENT STACK AND IS
- * SUBJECT TO CHANGE AT ANY TIME.
- */
-routine kext_request(
-        host_priv      : host_priv_t;
-    in  user_log_flags : uint32_t;
-    in  request_data   : pointer_t;
-    out response_data  : pointer_t;
-    out log_data       : pointer_t;
-    out op_result      : kern_return_t);
-
-/* vim: set ft=c : */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/host_priv.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/host_priv.h
deleted file mode 100644
index 33d87f2f..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/host_priv.h
+++ /dev/null
@@ -1,1163 +0,0 @@
-#ifndef	_host_priv_user_
-#define	_host_priv_user_
-
-/* Module host_priv */
-
-#include <string.h>
-#include <mach/ndr.h>
-#include <mach/boolean.h>
-#include <mach/kern_return.h>
-#include <mach/notify.h>
-#include <mach/mach_types.h>
-#include <mach/message.h>
-#include <mach/mig_errors.h>
-#include <mach/port.h>
-	
-/* BEGIN MIG_STRNCPY_ZEROFILL CODE */
-
-#if defined(__has_include)
-#if __has_include(<mach/mig_strncpy_zerofill_support.h>)
-#ifndef USING_MIG_STRNCPY_ZEROFILL
-#define USING_MIG_STRNCPY_ZEROFILL
-#endif
-#ifndef __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
-#define __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
-#ifdef __cplusplus
-extern "C" {
-#endif
-	extern int mig_strncpy_zerofill(char *dest, const char *src, int len) __attribute__((weak_import));
-#ifdef __cplusplus
-}
-#endif
-#endif /* __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__ */
-#endif /* __has_include(<mach/mig_strncpy_zerofill_support.h>) */
-#endif /* __has_include */
-	
-/* END MIG_STRNCPY_ZEROFILL CODE */
-
-
-#ifdef AUTOTEST
-#ifndef FUNCTION_PTR_T
-#define FUNCTION_PTR_T
-typedef void (*function_ptr_t)(mach_port_t, char *, mach_msg_type_number_t);
-typedef struct {
-        char            *name;
-        function_ptr_t  function;
-} function_table_entry;
-typedef function_table_entry   *function_table_t;
-#endif /* FUNCTION_PTR_T */
-#endif /* AUTOTEST */
-
-#ifndef	host_priv_MSG_COUNT
-#define	host_priv_MSG_COUNT	26
-#endif	/* host_priv_MSG_COUNT */
-
-#include <mach/std_types.h>
-#include <mach/mig.h>
-#include <mach/mig.h>
-#include <mach/mach_types.h>
-#include <mach/mach_types.h>
-#include <mach_debug/mach_debug_types.h>
-
-#ifdef __BeforeMigUserHeader
-__BeforeMigUserHeader
-#endif /* __BeforeMigUserHeader */
-
-#include <sys/cdefs.h>
-__BEGIN_DECLS
-
-
-/* Routine host_get_boot_info */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t host_get_boot_info
-(
-	host_priv_t host_priv,
-	kernel_boot_info_t boot_info
-);
-
-/* Routine host_reboot */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t host_reboot
-(
-	host_priv_t host_priv,
-	int options
-);
-
-/* Routine host_priv_statistics */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t host_priv_statistics
-(
-	host_priv_t host_priv,
-	host_flavor_t flavor,
-	host_info_t host_info_out,
-	mach_msg_type_number_t *host_info_outCnt
-);
-
-/* Routine host_default_memory_manager */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t host_default_memory_manager
-(
-	host_priv_t host_priv,
-	memory_object_default_t *default_manager,
-	memory_object_cluster_size_t cluster_size
-);
-
-/* Routine vm_wire */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t vm_wire
-(
-	host_priv_t host_priv,
-	vm_map_t task,
-	vm_address_t address,
-	vm_size_t size,
-	vm_prot_t desired_access
-);
-
-/* Routine thread_wire */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t thread_wire
-(
-	host_priv_t host_priv,
-	thread_act_t thread,
-	boolean_t wired
-);
-
-/* Routine vm_allocate_cpm */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t vm_allocate_cpm
-(
-	host_priv_t host_priv,
-	vm_map_t task,
-	vm_address_t *address,
-	vm_size_t size,
-	int flags
-);
-
-/* Routine host_processors */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t host_processors
-(
-	host_priv_t host_priv,
-	processor_array_t *out_processor_list,
-	mach_msg_type_number_t *out_processor_listCnt
-);
-
-/* Routine host_get_clock_control */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t host_get_clock_control
-(
-	host_priv_t host_priv,
-	clock_id_t clock_id,
-	clock_ctrl_t *clock_ctrl
-);
-
-/* Routine kmod_create */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t kmod_create
-(
-	host_priv_t host_priv,
-	vm_address_t info,
-	kmod_t *module
-);
-
-/* Routine kmod_destroy */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t kmod_destroy
-(
-	host_priv_t host_priv,
-	kmod_t module
-);
-
-/* Routine kmod_control */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t kmod_control
-(
-	host_priv_t host_priv,
-	kmod_t module,
-	kmod_control_flavor_t flavor,
-	kmod_args_t *data,
-	mach_msg_type_number_t *dataCnt
-);
-
-/* Routine host_get_special_port */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t host_get_special_port
-(
-	host_priv_t host_priv,
-	int node,
-	int which,
-	mach_port_t *port
-);
-
-/* Routine host_set_special_port */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t host_set_special_port
-(
-	host_priv_t host_priv,
-	int which,
-	mach_port_t port
-);
-
-/* Routine host_set_exception_ports */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t host_set_exception_ports
-(
-	host_priv_t host_priv,
-	exception_mask_t exception_mask,
-	mach_port_t new_port,
-	exception_behavior_t behavior,
-	thread_state_flavor_t new_flavor
-);
-
-/* Routine host_get_exception_ports */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t host_get_exception_ports
-(
-	host_priv_t host_priv,
-	exception_mask_t exception_mask,
-	exception_mask_array_t masks,
-	mach_msg_type_number_t *masksCnt,
-	exception_handler_array_t old_handlers,
-	exception_behavior_array_t old_behaviors,
-	exception_flavor_array_t old_flavors
-);
-
-/* Routine host_swap_exception_ports */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t host_swap_exception_ports
-(
-	host_priv_t host_priv,
-	exception_mask_t exception_mask,
-	mach_port_t new_port,
-	exception_behavior_t behavior,
-	thread_state_flavor_t new_flavor,
-	exception_mask_array_t masks,
-	mach_msg_type_number_t *masksCnt,
-	exception_handler_array_t old_handlerss,
-	exception_behavior_array_t old_behaviors,
-	exception_flavor_array_t old_flavors
-);
-
-/* Routine mach_vm_wire */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_vm_wire
-(
-	host_priv_t host_priv,
-	vm_map_t task,
-	mach_vm_address_t address,
-	mach_vm_size_t size,
-	vm_prot_t desired_access
-);
-
-/* Routine host_processor_sets */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t host_processor_sets
-(
-	host_priv_t host_priv,
-	processor_set_name_array_t *processor_sets,
-	mach_msg_type_number_t *processor_setsCnt
-);
-
-/* Routine host_processor_set_priv */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t host_processor_set_priv
-(
-	host_priv_t host_priv,
-	processor_set_name_t set_name,
-	processor_set_t *set
-);
-
-/* Routine host_set_UNDServer */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t host_set_UNDServer
-(
-	host_priv_t host,
-	UNDServerRef server
-);
-
-/* Routine host_get_UNDServer */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t host_get_UNDServer
-(
-	host_priv_t host,
-	UNDServerRef *server
-);
-
-/* Routine kext_request */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t kext_request
-(
-	host_priv_t host_priv,
-	uint32_t user_log_flags,
-	vm_offset_t request_data,
-	mach_msg_type_number_t request_dataCnt,
-	vm_offset_t *response_data,
-	mach_msg_type_number_t *response_dataCnt,
-	vm_offset_t *log_data,
-	mach_msg_type_number_t *log_dataCnt,
-	kern_return_t *op_result
-);
-
-__END_DECLS
-
-/********************** Caution **************************/
-/* The following data types should be used to calculate  */
-/* maximum message sizes only. The actual message may be */
-/* smaller, and the position of the arguments within the */
-/* message layout may vary from what is presented here.  */
-/* For example, if any of the arguments are variable-    */
-/* sized, and less than the maximum is sent, the data    */
-/* will be packed tight in the actual message to reduce  */
-/* the presence of holes.                                */
-/********************** Caution **************************/
-
-/* typedefs for all requests */
-
-#ifndef __Request__host_priv_subsystem__defined
-#define __Request__host_priv_subsystem__defined
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__host_get_boot_info_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		int options;
-	} __Request__host_reboot_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		host_flavor_t flavor;
-		mach_msg_type_number_t host_info_outCnt;
-	} __Request__host_priv_statistics_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t default_manager;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		memory_object_cluster_size_t cluster_size;
-	} __Request__host_default_memory_manager_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t task;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		vm_address_t address;
-		vm_size_t size;
-		vm_prot_t desired_access;
-	} __Request__vm_wire_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t thread;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		boolean_t wired;
-	} __Request__thread_wire_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t task;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		vm_address_t address;
-		vm_size_t size;
-		int flags;
-	} __Request__vm_allocate_cpm_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__host_processors_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		clock_id_t clock_id;
-	} __Request__host_get_clock_control_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		vm_address_t info;
-	} __Request__kmod_create_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kmod_t module;
-	} __Request__kmod_destroy_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_ool_descriptor_t data;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		kmod_t module;
-		kmod_control_flavor_t flavor;
-		mach_msg_type_number_t dataCnt;
-	} __Request__kmod_control_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		int node;
-		int which;
-	} __Request__host_get_special_port_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t port;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		int which;
-	} __Request__host_set_special_port_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t new_port;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		exception_mask_t exception_mask;
-		exception_behavior_t behavior;
-		thread_state_flavor_t new_flavor;
-	} __Request__host_set_exception_ports_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		exception_mask_t exception_mask;
-	} __Request__host_get_exception_ports_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t new_port;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		exception_mask_t exception_mask;
-		exception_behavior_t behavior;
-		thread_state_flavor_t new_flavor;
-	} __Request__host_swap_exception_ports_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t task;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		mach_vm_address_t address;
-		mach_vm_size_t size;
-		vm_prot_t desired_access;
-	} __Request__mach_vm_wire_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__host_processor_sets_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t set_name;
-		/* end of the kernel processed data */
-	} __Request__host_processor_set_priv_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t server;
-		/* end of the kernel processed data */
-	} __Request__host_set_UNDServer_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__host_get_UNDServer_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_ool_descriptor_t request_data;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		uint32_t user_log_flags;
-		mach_msg_type_number_t request_dataCnt;
-	} __Request__kext_request_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-#endif /* !__Request__host_priv_subsystem__defined */
-
-/* union of all requests */
-
-#ifndef __RequestUnion__host_priv_subsystem__defined
-#define __RequestUnion__host_priv_subsystem__defined
-union __RequestUnion__host_priv_subsystem {
-	__Request__host_get_boot_info_t Request_host_get_boot_info;
-	__Request__host_reboot_t Request_host_reboot;
-	__Request__host_priv_statistics_t Request_host_priv_statistics;
-	__Request__host_default_memory_manager_t Request_host_default_memory_manager;
-	__Request__vm_wire_t Request_vm_wire;
-	__Request__thread_wire_t Request_thread_wire;
-	__Request__vm_allocate_cpm_t Request_vm_allocate_cpm;
-	__Request__host_processors_t Request_host_processors;
-	__Request__host_get_clock_control_t Request_host_get_clock_control;
-	__Request__kmod_create_t Request_kmod_create;
-	__Request__kmod_destroy_t Request_kmod_destroy;
-	__Request__kmod_control_t Request_kmod_control;
-	__Request__host_get_special_port_t Request_host_get_special_port;
-	__Request__host_set_special_port_t Request_host_set_special_port;
-	__Request__host_set_exception_ports_t Request_host_set_exception_ports;
-	__Request__host_get_exception_ports_t Request_host_get_exception_ports;
-	__Request__host_swap_exception_ports_t Request_host_swap_exception_ports;
-	__Request__mach_vm_wire_t Request_mach_vm_wire;
-	__Request__host_processor_sets_t Request_host_processor_sets;
-	__Request__host_processor_set_priv_t Request_host_processor_set_priv;
-	__Request__host_set_UNDServer_t Request_host_set_UNDServer;
-	__Request__host_get_UNDServer_t Request_host_get_UNDServer;
-	__Request__kext_request_t Request_kext_request;
-};
-#endif /* !__RequestUnion__host_priv_subsystem__defined */
-/* typedefs for all replies */
-
-#ifndef __Reply__host_priv_subsystem__defined
-#define __Reply__host_priv_subsystem__defined
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		mach_msg_type_number_t boot_infoOffset; /* MiG doesn't use it */
-		mach_msg_type_number_t boot_infoCnt;
-		char boot_info[4096];
-	} __Reply__host_get_boot_info_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__host_reboot_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		mach_msg_type_number_t host_info_outCnt;
-		integer_t host_info_out[68];
-	} __Reply__host_priv_statistics_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t default_manager;
-		/* end of the kernel processed data */
-	} __Reply__host_default_memory_manager_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__vm_wire_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__thread_wire_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		vm_address_t address;
-	} __Reply__vm_allocate_cpm_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_ool_ports_descriptor_t out_processor_list;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		mach_msg_type_number_t out_processor_listCnt;
-	} __Reply__host_processors_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t clock_ctrl;
-		/* end of the kernel processed data */
-	} __Reply__host_get_clock_control_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		kmod_t module;
-	} __Reply__kmod_create_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__kmod_destroy_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_ool_descriptor_t data;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		mach_msg_type_number_t dataCnt;
-	} __Reply__kmod_control_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t port;
-		/* end of the kernel processed data */
-	} __Reply__host_get_special_port_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__host_set_special_port_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__host_set_exception_ports_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t old_handlers[32];
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		mach_msg_type_number_t masksCnt;
-		exception_mask_t masks[32];
-		exception_behavior_t old_behaviors[32];
-		thread_state_flavor_t old_flavors[32];
-	} __Reply__host_get_exception_ports_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t old_handlerss[32];
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		mach_msg_type_number_t masksCnt;
-		exception_mask_t masks[32];
-		exception_behavior_t old_behaviors[32];
-		thread_state_flavor_t old_flavors[32];
-	} __Reply__host_swap_exception_ports_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__mach_vm_wire_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_ool_ports_descriptor_t processor_sets;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		mach_msg_type_number_t processor_setsCnt;
-	} __Reply__host_processor_sets_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t set;
-		/* end of the kernel processed data */
-	} __Reply__host_processor_set_priv_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__host_set_UNDServer_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t server;
-		/* end of the kernel processed data */
-	} __Reply__host_get_UNDServer_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_ool_descriptor_t response_data;
-		mach_msg_ool_descriptor_t log_data;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		mach_msg_type_number_t response_dataCnt;
-		mach_msg_type_number_t log_dataCnt;
-		kern_return_t op_result;
-	} __Reply__kext_request_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-#endif /* !__Reply__host_priv_subsystem__defined */
-
-/* union of all replies */
-
-#ifndef __ReplyUnion__host_priv_subsystem__defined
-#define __ReplyUnion__host_priv_subsystem__defined
-union __ReplyUnion__host_priv_subsystem {
-	__Reply__host_get_boot_info_t Reply_host_get_boot_info;
-	__Reply__host_reboot_t Reply_host_reboot;
-	__Reply__host_priv_statistics_t Reply_host_priv_statistics;
-	__Reply__host_default_memory_manager_t Reply_host_default_memory_manager;
-	__Reply__vm_wire_t Reply_vm_wire;
-	__Reply__thread_wire_t Reply_thread_wire;
-	__Reply__vm_allocate_cpm_t Reply_vm_allocate_cpm;
-	__Reply__host_processors_t Reply_host_processors;
-	__Reply__host_get_clock_control_t Reply_host_get_clock_control;
-	__Reply__kmod_create_t Reply_kmod_create;
-	__Reply__kmod_destroy_t Reply_kmod_destroy;
-	__Reply__kmod_control_t Reply_kmod_control;
-	__Reply__host_get_special_port_t Reply_host_get_special_port;
-	__Reply__host_set_special_port_t Reply_host_set_special_port;
-	__Reply__host_set_exception_ports_t Reply_host_set_exception_ports;
-	__Reply__host_get_exception_ports_t Reply_host_get_exception_ports;
-	__Reply__host_swap_exception_ports_t Reply_host_swap_exception_ports;
-	__Reply__mach_vm_wire_t Reply_mach_vm_wire;
-	__Reply__host_processor_sets_t Reply_host_processor_sets;
-	__Reply__host_processor_set_priv_t Reply_host_processor_set_priv;
-	__Reply__host_set_UNDServer_t Reply_host_set_UNDServer;
-	__Reply__host_get_UNDServer_t Reply_host_get_UNDServer;
-	__Reply__kext_request_t Reply_kext_request;
-};
-#endif /* !__RequestUnion__host_priv_subsystem__defined */
-
-#ifndef subsystem_to_name_map_host_priv
-#define subsystem_to_name_map_host_priv \
-    { "host_get_boot_info", 400 },\
-    { "host_reboot", 401 },\
-    { "host_priv_statistics", 402 },\
-    { "host_default_memory_manager", 403 },\
-    { "vm_wire", 404 },\
-    { "thread_wire", 405 },\
-    { "vm_allocate_cpm", 406 },\
-    { "host_processors", 407 },\
-    { "host_get_clock_control", 408 },\
-    { "kmod_create", 409 },\
-    { "kmod_destroy", 410 },\
-    { "kmod_control", 411 },\
-    { "host_get_special_port", 412 },\
-    { "host_set_special_port", 413 },\
-    { "host_set_exception_ports", 414 },\
-    { "host_get_exception_ports", 415 },\
-    { "host_swap_exception_ports", 416 },\
-    { "mach_vm_wire", 418 },\
-    { "host_processor_sets", 419 },\
-    { "host_processor_set_priv", 420 },\
-    { "host_set_UNDServer", 423 },\
-    { "host_get_UNDServer", 424 },\
-    { "kext_request", 425 }
-#endif
-
-#ifdef __AfterMigUserHeader
-__AfterMigUserHeader
-#endif /* __AfterMigUserHeader */
-
-#endif	 /* _host_priv_user_ */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/host_reboot.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/host_reboot.h
deleted file mode 100644
index 02d8d089..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/host_reboot.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright (c) 2000-2004 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-
-#ifndef _MACH_HOST_REBOOT_
-#define _MACH_HOST_REBOOT_
-
-#define HOST_REBOOT_HALT        0x0008
-#define HOST_REBOOT_UPSDELAY    0x0100
-#define HOST_REBOOT_DEBUGGER    0x1000
-
-#endif  /* _MACH_HOST_REBOOT_ */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/host_security.defs b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/host_security.defs
deleted file mode 100644
index 4098df44..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/host_security.defs
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- * 
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- * 
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- * 
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- * 
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-/* 
- * Mach Operating System
- * Copyright (c) 1991,1990,1989 Carnegie Mellon University
- * All Rights Reserved.
- * 
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- * 
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- * 
- * Carnegie Mellon requests users of this software to return to
- * 
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- * 
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- */
-/*
- */
-
-/*
- * File:	mach/host_security.defs
- *
- * Abstract:
- *	Mach host security operations support.
- */
-subsystem
-#if	KERNEL_SERVER
-	  KernelServer
-#endif	/* KERNEL_SERVER */
-		      host_security 600;
-
-/*
- *	Basic types
- */
-#include <mach/std_types.defs>
-#include <mach/mach_types.defs>
-
-
-/*
- *	Create a new task with an explicit security token
- */
-routine host_security_create_task_token(
-		host_security	: host_security_t;
-		parent_task	: task_t;
-		sec_token	: security_token_t;
-		audit_token	: audit_token_t;
-		host		: host_t;
-		ledgers		: ledger_array_t;
-		inherit_memory	: boolean_t;
-	out	child_task	: task_t);
-
-/*
- *	Change a task's security token
- */
-routine host_security_set_task_token(
-		host_security	: host_security_t;
-		target_task	: task_t;
-		sec_token	: security_token_t;
-		audit_token	: audit_token_t;
-		host		: host_t);
-
-/* vim: set ft=c : */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/host_security.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/host_security.h
deleted file mode 100644
index a7928db8..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/host_security.h
+++ /dev/null
@@ -1,221 +0,0 @@
-#ifndef	_host_security_user_
-#define	_host_security_user_
-
-/* Module host_security */
-
-#include <string.h>
-#include <mach/ndr.h>
-#include <mach/boolean.h>
-#include <mach/kern_return.h>
-#include <mach/notify.h>
-#include <mach/mach_types.h>
-#include <mach/message.h>
-#include <mach/mig_errors.h>
-#include <mach/port.h>
-	
-/* BEGIN MIG_STRNCPY_ZEROFILL CODE */
-
-#if defined(__has_include)
-#if __has_include(<mach/mig_strncpy_zerofill_support.h>)
-#ifndef USING_MIG_STRNCPY_ZEROFILL
-#define USING_MIG_STRNCPY_ZEROFILL
-#endif
-#ifndef __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
-#define __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
-#ifdef __cplusplus
-extern "C" {
-#endif
-	extern int mig_strncpy_zerofill(char *dest, const char *src, int len) __attribute__((weak_import));
-#ifdef __cplusplus
-}
-#endif
-#endif /* __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__ */
-#endif /* __has_include(<mach/mig_strncpy_zerofill_support.h>) */
-#endif /* __has_include */
-	
-/* END MIG_STRNCPY_ZEROFILL CODE */
-
-
-#ifdef AUTOTEST
-#ifndef FUNCTION_PTR_T
-#define FUNCTION_PTR_T
-typedef void (*function_ptr_t)(mach_port_t, char *, mach_msg_type_number_t);
-typedef struct {
-        char            *name;
-        function_ptr_t  function;
-} function_table_entry;
-typedef function_table_entry   *function_table_t;
-#endif /* FUNCTION_PTR_T */
-#endif /* AUTOTEST */
-
-#ifndef	host_security_MSG_COUNT
-#define	host_security_MSG_COUNT	2
-#endif	/* host_security_MSG_COUNT */
-
-#include <mach/std_types.h>
-#include <mach/mig.h>
-#include <mach/mig.h>
-#include <mach/mach_types.h>
-
-#ifdef __BeforeMigUserHeader
-__BeforeMigUserHeader
-#endif /* __BeforeMigUserHeader */
-
-#include <sys/cdefs.h>
-__BEGIN_DECLS
-
-
-/* Routine host_security_create_task_token */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t host_security_create_task_token
-(
-	host_security_t host_security,
-	task_t parent_task,
-	security_token_t sec_token,
-	audit_token_t audit_token,
-	host_t host,
-	ledger_array_t ledgers,
-	mach_msg_type_number_t ledgersCnt,
-	boolean_t inherit_memory,
-	task_t *child_task
-);
-
-/* Routine host_security_set_task_token */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t host_security_set_task_token
-(
-	host_security_t host_security,
-	task_t target_task,
-	security_token_t sec_token,
-	audit_token_t audit_token,
-	host_t host
-);
-
-__END_DECLS
-
-/********************** Caution **************************/
-/* The following data types should be used to calculate  */
-/* maximum message sizes only. The actual message may be */
-/* smaller, and the position of the arguments within the */
-/* message layout may vary from what is presented here.  */
-/* For example, if any of the arguments are variable-    */
-/* sized, and less than the maximum is sent, the data    */
-/* will be packed tight in the actual message to reduce  */
-/* the presence of holes.                                */
-/********************** Caution **************************/
-
-/* typedefs for all requests */
-
-#ifndef __Request__host_security_subsystem__defined
-#define __Request__host_security_subsystem__defined
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t parent_task;
-		mach_msg_port_descriptor_t host;
-		mach_msg_ool_ports_descriptor_t ledgers;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		security_token_t sec_token;
-		audit_token_t audit_token;
-		mach_msg_type_number_t ledgersCnt;
-		boolean_t inherit_memory;
-	} __Request__host_security_create_task_token_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t target_task;
-		mach_msg_port_descriptor_t host;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		security_token_t sec_token;
-		audit_token_t audit_token;
-	} __Request__host_security_set_task_token_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-#endif /* !__Request__host_security_subsystem__defined */
-
-/* union of all requests */
-
-#ifndef __RequestUnion__host_security_subsystem__defined
-#define __RequestUnion__host_security_subsystem__defined
-union __RequestUnion__host_security_subsystem {
-	__Request__host_security_create_task_token_t Request_host_security_create_task_token;
-	__Request__host_security_set_task_token_t Request_host_security_set_task_token;
-};
-#endif /* !__RequestUnion__host_security_subsystem__defined */
-/* typedefs for all replies */
-
-#ifndef __Reply__host_security_subsystem__defined
-#define __Reply__host_security_subsystem__defined
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t child_task;
-		/* end of the kernel processed data */
-	} __Reply__host_security_create_task_token_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__host_security_set_task_token_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-#endif /* !__Reply__host_security_subsystem__defined */
-
-/* union of all replies */
-
-#ifndef __ReplyUnion__host_security_subsystem__defined
-#define __ReplyUnion__host_security_subsystem__defined
-union __ReplyUnion__host_security_subsystem {
-	__Reply__host_security_create_task_token_t Reply_host_security_create_task_token;
-	__Reply__host_security_set_task_token_t Reply_host_security_set_task_token;
-};
-#endif /* !__RequestUnion__host_security_subsystem__defined */
-
-#ifndef subsystem_to_name_map_host_security
-#define subsystem_to_name_map_host_security \
-    { "host_security_create_task_token", 600 },\
-    { "host_security_set_task_token", 601 }
-#endif
-
-#ifdef __AfterMigUserHeader
-__AfterMigUserHeader
-#endif /* __AfterMigUserHeader */
-
-#endif	 /* _host_security_user_ */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/host_special_ports.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/host_special_ports.h
deleted file mode 100644
index d09b44b6..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/host_special_ports.h
+++ /dev/null
@@ -1,281 +0,0 @@
-/*
- * Copyright (c) 2003 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-/*
- * Mach Operating System
- * Copyright (c) 1991 Carnegie Mellon University
- * All Rights Reserved.
- *
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- */
-/*
- */
-/*
- *	File:	mach/host_special_ports.h
- *
- *	Defines codes for access to host-wide special ports.
- */
-
-#ifndef _MACH_HOST_SPECIAL_PORTS_H_
-#define _MACH_HOST_SPECIAL_PORTS_H_
-
-/*
- * Cannot be set or gotten from user space
- */
-#define HOST_SECURITY_PORT               0
-
-#define HOST_MIN_SPECIAL_PORT            HOST_SECURITY_PORT
-
-/*
- * Always provided by kernel (cannot be set from user-space).
- */
-#define HOST_PORT                        1
-#define HOST_PRIV_PORT                   2
-#define HOST_IO_MASTER_PORT              3
-#define HOST_MAX_SPECIAL_KERNEL_PORT     7 /* room to grow */
-
-#define HOST_LAST_SPECIAL_KERNEL_PORT    HOST_IO_MASTER_PORT
-
-/*
- * Not provided by kernel
- */
-#define HOST_DYNAMIC_PAGER_PORT         (1 + HOST_MAX_SPECIAL_KERNEL_PORT)
-#define HOST_AUDIT_CONTROL_PORT         (2 + HOST_MAX_SPECIAL_KERNEL_PORT)
-#define HOST_USER_NOTIFICATION_PORT     (3 + HOST_MAX_SPECIAL_KERNEL_PORT)
-#define HOST_AUTOMOUNTD_PORT            (4 + HOST_MAX_SPECIAL_KERNEL_PORT)
-#define HOST_LOCKD_PORT                 (5 + HOST_MAX_SPECIAL_KERNEL_PORT)
-#define HOST_KTRACE_BACKGROUND_PORT     (6 + HOST_MAX_SPECIAL_KERNEL_PORT)
-#define HOST_SEATBELT_PORT              (7 + HOST_MAX_SPECIAL_KERNEL_PORT)
-#define HOST_KEXTD_PORT                 (8 + HOST_MAX_SPECIAL_KERNEL_PORT)
-#define HOST_LAUNCHCTL_PORT             (9 + HOST_MAX_SPECIAL_KERNEL_PORT)
-#define HOST_UNFREED_PORT               (10 + HOST_MAX_SPECIAL_KERNEL_PORT)
-#define HOST_AMFID_PORT                 (11 + HOST_MAX_SPECIAL_KERNEL_PORT)
-#define HOST_GSSD_PORT                  (12 + HOST_MAX_SPECIAL_KERNEL_PORT)
-#define HOST_TELEMETRY_PORT             (13 + HOST_MAX_SPECIAL_KERNEL_PORT)
-#define HOST_ATM_NOTIFICATION_PORT      (14 + HOST_MAX_SPECIAL_KERNEL_PORT)
-#define HOST_COALITION_PORT             (15 + HOST_MAX_SPECIAL_KERNEL_PORT)
-#define HOST_SYSDIAGNOSE_PORT           (16 + HOST_MAX_SPECIAL_KERNEL_PORT)
-#define HOST_XPC_EXCEPTION_PORT         (17 + HOST_MAX_SPECIAL_KERNEL_PORT)
-#define HOST_CONTAINERD_PORT            (18 + HOST_MAX_SPECIAL_KERNEL_PORT)
-#define HOST_NODE_PORT                  (19 + HOST_MAX_SPECIAL_KERNEL_PORT)
-#define HOST_RESOURCE_NOTIFY_PORT       (20 + HOST_MAX_SPECIAL_KERNEL_PORT)
-#define HOST_CLOSURED_PORT              (21 + HOST_MAX_SPECIAL_KERNEL_PORT)
-#define HOST_SYSPOLICYD_PORT            (22 + HOST_MAX_SPECIAL_KERNEL_PORT)
-#define HOST_FILECOORDINATIOND_PORT     (23 + HOST_MAX_SPECIAL_KERNEL_PORT)
-#define HOST_FAIRPLAYD_PORT             (24 + HOST_MAX_SPECIAL_KERNEL_PORT)
-
-#define HOST_MAX_SPECIAL_PORT           HOST_FAIRPLAYD_PORT
-/* MAX = last since rdar://35861175 */
-
-/* obsolete name */
-#define HOST_CHUD_PORT HOST_LAUNCHCTL_PORT
-
-/*
- * Special node identifier to always represent the local node.
- */
-#define HOST_LOCAL_NODE                  -1
-
-/*
- * Definitions for ease of use.
- *
- * In the get call, the host parameter can be any host, but will generally
- * be the local node host port. In the set call, the host must the per-node
- * host port for the node being affected.
- */
-#define host_get_host_port(host, port)  \
-	(host_get_special_port((host),  \
-	HOST_LOCAL_NODE, HOST_PORT, (port)))
-#define host_set_host_port(host, port) (KERN_INVALID_ARGUMENT)
-
-#define host_get_host_priv_port(host, port)     \
-	(host_get_special_port((host),          \
-	HOST_LOCAL_NODE, HOST_PRIV_PORT, (port)))
-#define host_set_host_priv_port(host, port) (KERN_INVALID_ARGUMENT)
-
-#define host_get_io_master_port(host, port)     \
-	(host_get_special_port((host),          \
-	HOST_LOCAL_NODE, HOST_IO_MASTER_PORT, (port)))
-#define host_set_io_master_port(host, port) (KERN_INVALID_ARGUMENT)
-
-/*
- * User-settable special ports.
- */
-#define host_get_dynamic_pager_port(host, port) \
-	(host_get_special_port((host),                  \
-	HOST_LOCAL_NODE, HOST_DYNAMIC_PAGER_PORT, (port)))
-#define host_set_dynamic_pager_port(host, port) \
-	(host_set_special_port((host), HOST_DYNAMIC_PAGER_PORT, (port)))
-
-#define host_get_audit_control_port(host, port) \
-	(host_get_special_port((host),          \
-	HOST_LOCAL_NODE, HOST_AUDIT_CONTROL_PORT, (port)))
-#define host_set_audit_control_port(host, port) \
-	(host_set_special_port((host), HOST_AUDIT_CONTROL_PORT, (port)))
-
-#define host_get_user_notification_port(host, port)     \
-	(host_get_special_port((host),                  \
-	HOST_LOCAL_NODE, HOST_USER_NOTIFICATION_PORT, (port)))
-#define host_set_user_notification_port(host, port)     \
-	(host_set_special_port((host), HOST_USER_NOTIFICATION_PORT, (port)))
-
-#define host_get_automountd_port(host, port)    \
-	(host_get_special_port((host),          \
-	HOST_LOCAL_NODE, HOST_AUTOMOUNTD_PORT, (port)))
-#define host_set_automountd_port(host, port)    \
-	(host_set_special_port((host), HOST_AUTOMOUNTD_PORT, (port)))
-
-#define host_get_lockd_port(host, port) \
-	(host_get_special_port((host),                  \
-	HOST_LOCAL_NODE, HOST_LOCKD_PORT, (port)))
-#define host_set_lockd_port(host, port) \
-	(host_set_special_port((host), HOST_LOCKD_PORT, (port)))
-
-#define host_get_ktrace_background_port(host, port)     \
-	(host_get_special_port((host),                  \
-	HOST_LOCAL_NODE, HOST_KTRACE_BACKGROUND_PORT, (port)))
-#define host_set_ktrace_background_port(host, port)     \
-	(host_set_special_port((host), HOST_KTRACE_BACKGROUND_PORT, (port)))
-
-#define host_get_kextd_port(host, port) \
-	(host_get_special_port((host),                  \
-	HOST_LOCAL_NODE, HOST_KEXTD_PORT, (port)))
-#define host_set_kextd_port(host, port) \
-	(host_set_special_port((host), HOST_KEXTD_PORT, (port)))
-
-#define host_get_launchctl_port(host, port) \
-	(host_get_special_port((host), HOST_LOCAL_NODE, HOST_LAUNCHCTL_PORT, \
-	(port)))
-#define host_set_launchctl_port(host, port) \
-	(host_set_special_port((host), HOST_LAUNCHCTL_PORT, (port)))
-
-#define host_get_chud_port(host, port) host_get_launchctl_port(host, port)
-#define host_set_chud_port(host, port) host_set_launchctl_port(host, port)
-
-#define host_get_unfreed_port(host, port)       \
-	(host_get_special_port((host),                  \
-	HOST_LOCAL_NODE, HOST_UNFREED_PORT, (port)))
-#define host_set_unfreed_port(host, port)       \
-	(host_set_special_port((host), HOST_UNFREED_PORT, (port)))
-
-#define host_get_amfid_port(host, port) \
-	(host_get_special_port((host),                  \
-	HOST_LOCAL_NODE, HOST_AMFID_PORT, (port)))
-#define host_set_amfid_port(host, port) \
-	(host_set_special_port((host), HOST_AMFID_PORT, (port)))
-
-#define host_get_gssd_port(host, port)  \
-	(host_get_special_port((host),                  \
-	HOST_LOCAL_NODE, HOST_GSSD_PORT, (port)))
-#define host_set_gssd_port(host, port)  \
-	(host_set_special_port((host), HOST_GSSD_PORT, (port)))
-
-#define host_get_telemetry_port(host, port)     \
-	(host_get_special_port((host),                  \
-	HOST_LOCAL_NODE, HOST_TELEMETRY_PORT, (port)))
-#define host_set_telemetry_port(host, port)     \
-	(host_set_special_port((host), HOST_TELEMETRY_PORT, (port)))
-
-#define host_get_atm_notification_port(host, port)      \
-	(host_get_special_port((host),                  \
-	HOST_LOCAL_NODE, HOST_ATM_NOTIFICATION_PORT, (port)))
-#define host_set_atm_notification_port(host, port)      \
-	(host_set_special_port((host), HOST_ATM_NOTIFICATION_PORT, (port)))
-
-#define host_get_coalition_port(host, port)     \
-	(host_get_special_port((host),                  \
-	HOST_LOCAL_NODE, HOST_COALITION_PORT, (port)))
-#define host_set_coalition_port(host, port)     \
-	(host_set_special_port((host), HOST_COALITION_PORT, (port)))
-
-#define host_get_sysdiagnose_port(host, port)   \
-	(host_get_special_port((host),                  \
-	HOST_LOCAL_NODE, HOST_SYSDIAGNOSE_PORT, (port)))
-#define host_set_sysdiagnose_port(host, port)   \
-	(host_set_special_port((host), HOST_SYSDIAGNOSE_PORT, (port)))
-
-#define host_get_container_port(host, port)     \
-	(host_get_special_port((host),                  \
-	HOST_LOCAL_NODE, HOST_CONTAINERD_PORT, (port)))
-#define host_set_container_port(host, port)     \
-	(host_set_special_port((host), HOST_CONTAINERD_PORT, (port)))
-
-#define host_get_node_port(host, port)  \
-	(host_get_special_port((host),                  \
-	HOST_LOCAL_NODE, HOST_NODE_PORT, (port)))
-#define host_set_node_port(host, port)  \
-	(host_set_special_port((host), HOST_NODE_PORT, (port)))
-
-#define host_get_closured_port(host, port)      \
-	(host_get_special_port((host),                  \
-	HOST_LOCAL_NODE, HOST_CLOSURED_PORT, (port)))
-#define host_set_closured_port(host, port)      \
-	(host_set_special_port((host), HOST_CLOSURED_PORT, (port)))
-
-#define host_get_syspolicyd_port(host, port)    \
-	(host_get_special_port((host),                          \
-	HOST_LOCAL_NODE, HOST_SYSPOLICYD_PORT, (port)))
-#define host_set_syspolicyd_port(host, port)    \
-	(host_set_special_port((host), HOST_SYSPOLICYD_PORT, (port)))
-
-#define host_get_filecoordinationd_port(host, port)     \
-	(host_get_special_port((host),                  \
-	HOST_LOCAL_NODE, HOST_FILECOORDINATIOND_PORT, (port)))
-#define host_set_filecoordinationd_port(host, port)     \
-	(host_set_special_port((host), HOST_FILECOORDINATIOND_PORT, (port)))
-
-#define host_get_fairplayd_port(host, port)     \
-	(host_get_special_port((host),                  \
-	HOST_LOCAL_NODE, HOST_FAIRPLAYD_PORT, (port)))
-#define host_set_fairplayd_port(host, port)     \
-	(host_set_special_port((host), HOST_FAIRPLAYD_PORT, (port)))
-
-/* HOST_RESOURCE_NOTIFY_PORT doesn't #defines these conveniences.
- *  All lookups go through send_resource_violation()
- */
-
-#endif  /* _MACH_HOST_SPECIAL_PORTS_H_ */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/i386/_structs.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/i386/_structs.h
deleted file mode 100644
index c9cc8992..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/i386/_structs.h
+++ /dev/null
@@ -1,1232 +0,0 @@
-/*
- * Copyright (c) 2004-2006 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- * 
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- * 
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- * 
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- * 
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-
-#ifndef	_MACH_I386__STRUCTS_H_
-#define	_MACH_I386__STRUCTS_H_
-
-#include <sys/cdefs.h> /* __DARWIN_UNIX03 */
-#include <machine/types.h> /* __uint8_t */
-
-/*
- * i386 is the structure that is exported to user threads for 
- * use in status/mutate calls.  This structure should never change.
- *
- */
-
-#if __DARWIN_UNIX03
-#define	_STRUCT_X86_THREAD_STATE32	struct __darwin_i386_thread_state
-_STRUCT_X86_THREAD_STATE32
-{
-    unsigned int	__eax;
-    unsigned int	__ebx;
-    unsigned int	__ecx;
-    unsigned int	__edx;
-    unsigned int	__edi;
-    unsigned int	__esi;
-    unsigned int	__ebp;
-    unsigned int	__esp;
-    unsigned int	__ss;
-    unsigned int	__eflags;
-    unsigned int	__eip;
-    unsigned int	__cs;
-    unsigned int	__ds;
-    unsigned int	__es;
-    unsigned int	__fs;
-    unsigned int	__gs;
-};
-#else /* !__DARWIN_UNIX03 */
-#define	_STRUCT_X86_THREAD_STATE32	struct i386_thread_state
-_STRUCT_X86_THREAD_STATE32
-{
-    unsigned int	eax;
-    unsigned int	ebx;
-    unsigned int	ecx;
-    unsigned int	edx;
-    unsigned int	edi;
-    unsigned int	esi;
-    unsigned int	ebp;
-    unsigned int	esp;
-    unsigned int	ss;
-    unsigned int	eflags;
-    unsigned int	eip;
-    unsigned int	cs;
-    unsigned int	ds;
-    unsigned int	es;
-    unsigned int	fs;
-    unsigned int	gs;
-};
-#endif /* !__DARWIN_UNIX03 */
-
-/* This structure should be double-word aligned for performance */
-
-#if __DARWIN_UNIX03
-#define _STRUCT_FP_CONTROL	struct __darwin_fp_control
-_STRUCT_FP_CONTROL
-{
-    unsigned short		__invalid	:1,
-    				__denorm	:1,
-				__zdiv		:1,
-				__ovrfl		:1,
-				__undfl		:1,
-				__precis	:1,
-						:2,
-				__pc		:2,
-#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
-#define FP_PREC_24B		0
-#define	FP_PREC_53B		2
-#define FP_PREC_64B		3
-#endif /* !_POSIX_C_SOURCE || _DARWIN_C_SOURCE */
-				__rc		:2,
-#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
-#define FP_RND_NEAR		0
-#define FP_RND_DOWN		1
-#define FP_RND_UP		2
-#define FP_CHOP			3
-#endif /* !_POSIX_C_SOURCE || _DARWIN_C_SOURCE */
-					/*inf*/	:1,
-						:3;
-};
-typedef _STRUCT_FP_CONTROL	__darwin_fp_control_t;
-#else /* !__DARWIN_UNIX03 */
-#define _STRUCT_FP_CONTROL	struct fp_control
-_STRUCT_FP_CONTROL
-{
-    unsigned short		invalid	:1,
-    				denorm	:1,
-				zdiv	:1,
-				ovrfl	:1,
-				undfl	:1,
-				precis	:1,
-					:2,
-				pc	:2,
-#define FP_PREC_24B		0
-#define	FP_PREC_53B		2
-#define FP_PREC_64B		3
-				rc	:2,
-#define FP_RND_NEAR		0
-#define FP_RND_DOWN		1
-#define FP_RND_UP		2
-#define FP_CHOP			3
-				/*inf*/	:1,
-					:3;
-};
-typedef _STRUCT_FP_CONTROL	fp_control_t;
-#endif /* !__DARWIN_UNIX03 */
-
-/*
- * Status word.
- */
-
-#if __DARWIN_UNIX03
-#define _STRUCT_FP_STATUS	struct __darwin_fp_status
-_STRUCT_FP_STATUS
-{
-    unsigned short		__invalid	:1,
-    				__denorm	:1,
-				__zdiv		:1,
-				__ovrfl		:1,
-				__undfl		:1,
-				__precis	:1,
-				__stkflt	:1,
-				__errsumm	:1,
-				__c0		:1,
-				__c1		:1,
-				__c2		:1,
-				__tos		:3,
-				__c3		:1,
-				__busy		:1;
-};
-typedef _STRUCT_FP_STATUS	__darwin_fp_status_t;
-#else /* !__DARWIN_UNIX03 */
-#define _STRUCT_FP_STATUS	struct fp_status
-_STRUCT_FP_STATUS
-{
-    unsigned short		invalid	:1,
-    				denorm	:1,
-				zdiv	:1,
-				ovrfl	:1,
-				undfl	:1,
-				precis	:1,
-				stkflt	:1,
-				errsumm	:1,
-				c0	:1,
-				c1	:1,
-				c2	:1,
-				tos	:3,
-				c3	:1,
-				busy	:1;
-};
-typedef _STRUCT_FP_STATUS	fp_status_t;
-#endif /* !__DARWIN_UNIX03 */
-				
-/* defn of 80bit x87 FPU or MMX register  */
-
-#if __DARWIN_UNIX03
-#define _STRUCT_MMST_REG	struct __darwin_mmst_reg
-_STRUCT_MMST_REG
-{
-	char	__mmst_reg[10];
-	char	__mmst_rsrv[6];
-};
-#else /* !__DARWIN_UNIX03 */
-#define _STRUCT_MMST_REG	struct mmst_reg
-_STRUCT_MMST_REG
-{
-	char	mmst_reg[10];
-	char	mmst_rsrv[6];
-};
-#endif /* !__DARWIN_UNIX03 */
-
-
-/* defn of 128 bit XMM regs */
-
-#if __DARWIN_UNIX03
-#define _STRUCT_XMM_REG		struct __darwin_xmm_reg
-_STRUCT_XMM_REG
-{
-	char		__xmm_reg[16];
-};
-#else /* !__DARWIN_UNIX03 */
-#define _STRUCT_XMM_REG		struct xmm_reg
-_STRUCT_XMM_REG
-{
-	char		xmm_reg[16];
-};
-#endif /* !__DARWIN_UNIX03 */
-
-/* defn of 256 bit YMM regs */
-
-#if __DARWIN_UNIX03
-#define _STRUCT_YMM_REG		struct __darwin_ymm_reg
-_STRUCT_YMM_REG
-{
-	char		__ymm_reg[32];
-};
-#else /* !__DARWIN_UNIX03 */
-#define _STRUCT_YMM_REG		struct ymm_reg
-_STRUCT_YMM_REG
-{
-	char		ymm_reg[32];
-};
-#endif /* !__DARWIN_UNIX03 */
-
-/* defn of 512 bit ZMM regs */
-
-#if __DARWIN_UNIX03
-#define _STRUCT_ZMM_REG		struct __darwin_zmm_reg
-_STRUCT_ZMM_REG
-{
-	char		__zmm_reg[64];
-};
-#else /* !__DARWIN_UNIX03 */
-#define _STRUCT_ZMM_REG		struct zmm_reg
-_STRUCT_ZMM_REG
-{
-	char		zmm_reg[64];
-};
-#endif /* !__DARWIN_UNIX03 */
-
-#if __DARWIN_UNIX03
-#define _STRUCT_OPMASK_REG	struct __darwin_opmask_reg
-_STRUCT_OPMASK_REG
-{
-	char		__opmask_reg[8];
-};
-#else /* !__DARWIN_UNIX03 */
-#define _STRUCT_OPMASK_REG	struct opmask_reg
-_STRUCT_OPMASK_REG
-{
-	char		opmask_reg[8];
-};
-#endif /* !__DARWIN_UNIX03 */
-
-/* 
- * Floating point state.
- */
-
-#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
-#define FP_STATE_BYTES		512	/* number of chars worth of data from fpu_fcw */
-#endif /* !_POSIX_C_SOURCE || _DARWIN_C_SOURCE */
-
-#if __DARWIN_UNIX03
-#define	_STRUCT_X86_FLOAT_STATE32	struct __darwin_i386_float_state
-_STRUCT_X86_FLOAT_STATE32
-{
-	int 			__fpu_reserved[2];
-	_STRUCT_FP_CONTROL	__fpu_fcw;		/* x87 FPU control word */
-	_STRUCT_FP_STATUS	__fpu_fsw;		/* x87 FPU status word */
-	__uint8_t		__fpu_ftw;		/* x87 FPU tag word */
-	__uint8_t		__fpu_rsrv1;		/* reserved */ 
-	__uint16_t		__fpu_fop;		/* x87 FPU Opcode */
-	__uint32_t		__fpu_ip;		/* x87 FPU Instruction Pointer offset */
-	__uint16_t		__fpu_cs;		/* x87 FPU Instruction Pointer Selector */
-	__uint16_t		__fpu_rsrv2;		/* reserved */
-	__uint32_t		__fpu_dp;		/* x87 FPU Instruction Operand(Data) Pointer offset */
-	__uint16_t		__fpu_ds;		/* x87 FPU Instruction Operand(Data) Pointer Selector */
-	__uint16_t		__fpu_rsrv3;		/* reserved */
-	__uint32_t		__fpu_mxcsr;		/* MXCSR Register state */
-	__uint32_t		__fpu_mxcsrmask;	/* MXCSR mask */
-	_STRUCT_MMST_REG	__fpu_stmm0;		/* ST0/MM0   */
-	_STRUCT_MMST_REG	__fpu_stmm1;		/* ST1/MM1  */
-	_STRUCT_MMST_REG	__fpu_stmm2;		/* ST2/MM2  */
-	_STRUCT_MMST_REG	__fpu_stmm3;		/* ST3/MM3  */
-	_STRUCT_MMST_REG	__fpu_stmm4;		/* ST4/MM4  */
-	_STRUCT_MMST_REG	__fpu_stmm5;		/* ST5/MM5  */
-	_STRUCT_MMST_REG	__fpu_stmm6;		/* ST6/MM6  */
-	_STRUCT_MMST_REG	__fpu_stmm7;		/* ST7/MM7  */
-	_STRUCT_XMM_REG		__fpu_xmm0;		/* XMM 0  */
-	_STRUCT_XMM_REG		__fpu_xmm1;		/* XMM 1  */
-	_STRUCT_XMM_REG		__fpu_xmm2;		/* XMM 2  */
-	_STRUCT_XMM_REG		__fpu_xmm3;		/* XMM 3  */
-	_STRUCT_XMM_REG		__fpu_xmm4;		/* XMM 4  */
-	_STRUCT_XMM_REG		__fpu_xmm5;		/* XMM 5  */
-	_STRUCT_XMM_REG		__fpu_xmm6;		/* XMM 6  */
-	_STRUCT_XMM_REG		__fpu_xmm7;		/* XMM 7  */
-	char			__fpu_rsrv4[14*16];	/* reserved */
-	int 			__fpu_reserved1;
-};
-
-#define	_STRUCT_X86_AVX_STATE32	struct __darwin_i386_avx_state
-_STRUCT_X86_AVX_STATE32
-{
-	int 			__fpu_reserved[2];
-	_STRUCT_FP_CONTROL	__fpu_fcw;		/* x87 FPU control word */
-	_STRUCT_FP_STATUS	__fpu_fsw;		/* x87 FPU status word */
-	__uint8_t		__fpu_ftw;		/* x87 FPU tag word */
-	__uint8_t		__fpu_rsrv1;		/* reserved */ 
-	__uint16_t		__fpu_fop;		/* x87 FPU Opcode */
-	__uint32_t		__fpu_ip;		/* x87 FPU Instruction Pointer offset */
-	__uint16_t		__fpu_cs;		/* x87 FPU Instruction Pointer Selector */
-	__uint16_t		__fpu_rsrv2;		/* reserved */
-	__uint32_t		__fpu_dp;		/* x87 FPU Instruction Operand(Data) Pointer offset */
-	__uint16_t		__fpu_ds;		/* x87 FPU Instruction Operand(Data) Pointer Selector */
-	__uint16_t		__fpu_rsrv3;		/* reserved */
-	__uint32_t		__fpu_mxcsr;		/* MXCSR Register state */
-	__uint32_t		__fpu_mxcsrmask;	/* MXCSR mask */
-	_STRUCT_MMST_REG	__fpu_stmm0;		/* ST0/MM0   */
-	_STRUCT_MMST_REG	__fpu_stmm1;		/* ST1/MM1  */
-	_STRUCT_MMST_REG	__fpu_stmm2;		/* ST2/MM2  */
-	_STRUCT_MMST_REG	__fpu_stmm3;		/* ST3/MM3  */
-	_STRUCT_MMST_REG	__fpu_stmm4;		/* ST4/MM4  */
-	_STRUCT_MMST_REG	__fpu_stmm5;		/* ST5/MM5  */
-	_STRUCT_MMST_REG	__fpu_stmm6;		/* ST6/MM6  */
-	_STRUCT_MMST_REG	__fpu_stmm7;		/* ST7/MM7  */
-	_STRUCT_XMM_REG		__fpu_xmm0;		/* XMM 0  */
-	_STRUCT_XMM_REG		__fpu_xmm1;		/* XMM 1  */
-	_STRUCT_XMM_REG		__fpu_xmm2;		/* XMM 2  */
-	_STRUCT_XMM_REG		__fpu_xmm3;		/* XMM 3  */
-	_STRUCT_XMM_REG		__fpu_xmm4;		/* XMM 4  */
-	_STRUCT_XMM_REG		__fpu_xmm5;		/* XMM 5  */
-	_STRUCT_XMM_REG		__fpu_xmm6;		/* XMM 6  */
-	_STRUCT_XMM_REG		__fpu_xmm7;		/* XMM 7  */
-	char			__fpu_rsrv4[14*16];	/* reserved */
-	int 			__fpu_reserved1;
-	char			__avx_reserved1[64];
-	_STRUCT_XMM_REG		__fpu_ymmh0;		/* YMMH 0  */
-	_STRUCT_XMM_REG		__fpu_ymmh1;		/* YMMH 1  */
-	_STRUCT_XMM_REG		__fpu_ymmh2;		/* YMMH 2  */
-	_STRUCT_XMM_REG		__fpu_ymmh3;		/* YMMH 3  */
-	_STRUCT_XMM_REG		__fpu_ymmh4;		/* YMMH 4  */
-	_STRUCT_XMM_REG		__fpu_ymmh5;		/* YMMH 5  */
-	_STRUCT_XMM_REG		__fpu_ymmh6;		/* YMMH 6  */
-	_STRUCT_XMM_REG		__fpu_ymmh7;		/* YMMH 7  */
-};
-
-#define	_STRUCT_X86_AVX512_STATE32	struct __darwin_i386_avx512_state
-_STRUCT_X86_AVX512_STATE32
-{
-	int 			__fpu_reserved[2];
-	_STRUCT_FP_CONTROL	__fpu_fcw;		/* x87 FPU control word */
-	_STRUCT_FP_STATUS	__fpu_fsw;		/* x87 FPU status word */
-	__uint8_t		__fpu_ftw;		/* x87 FPU tag word */
-	__uint8_t		__fpu_rsrv1;		/* reserved */ 
-	__uint16_t		__fpu_fop;		/* x87 FPU Opcode */
-	__uint32_t		__fpu_ip;		/* x87 FPU Instruction Pointer offset */
-	__uint16_t		__fpu_cs;		/* x87 FPU Instruction Pointer Selector */
-	__uint16_t		__fpu_rsrv2;		/* reserved */
-	__uint32_t		__fpu_dp;		/* x87 FPU Instruction Operand(Data) Pointer offset */
-	__uint16_t		__fpu_ds;		/* x87 FPU Instruction Operand(Data) Pointer Selector */
-	__uint16_t		__fpu_rsrv3;		/* reserved */
-	__uint32_t		__fpu_mxcsr;		/* MXCSR Register state */
-	__uint32_t		__fpu_mxcsrmask;	/* MXCSR mask */
-	_STRUCT_MMST_REG	__fpu_stmm0;		/* ST0/MM0   */
-	_STRUCT_MMST_REG	__fpu_stmm1;		/* ST1/MM1  */
-	_STRUCT_MMST_REG	__fpu_stmm2;		/* ST2/MM2  */
-	_STRUCT_MMST_REG	__fpu_stmm3;		/* ST3/MM3  */
-	_STRUCT_MMST_REG	__fpu_stmm4;		/* ST4/MM4  */
-	_STRUCT_MMST_REG	__fpu_stmm5;		/* ST5/MM5  */
-	_STRUCT_MMST_REG	__fpu_stmm6;		/* ST6/MM6  */
-	_STRUCT_MMST_REG	__fpu_stmm7;		/* ST7/MM7  */
-	_STRUCT_XMM_REG		__fpu_xmm0;		/* XMM 0  */
-	_STRUCT_XMM_REG		__fpu_xmm1;		/* XMM 1  */
-	_STRUCT_XMM_REG		__fpu_xmm2;		/* XMM 2  */
-	_STRUCT_XMM_REG		__fpu_xmm3;		/* XMM 3  */
-	_STRUCT_XMM_REG		__fpu_xmm4;		/* XMM 4  */
-	_STRUCT_XMM_REG		__fpu_xmm5;		/* XMM 5  */
-	_STRUCT_XMM_REG		__fpu_xmm6;		/* XMM 6  */
-	_STRUCT_XMM_REG		__fpu_xmm7;		/* XMM 7  */
-	char			__fpu_rsrv4[14*16];	/* reserved */
-	int 			__fpu_reserved1;
-	char			__avx_reserved1[64];
-	_STRUCT_XMM_REG		__fpu_ymmh0;		/* YMMH 0  */
-	_STRUCT_XMM_REG		__fpu_ymmh1;		/* YMMH 1  */
-	_STRUCT_XMM_REG		__fpu_ymmh2;		/* YMMH 2  */
-	_STRUCT_XMM_REG		__fpu_ymmh3;		/* YMMH 3  */
-	_STRUCT_XMM_REG		__fpu_ymmh4;		/* YMMH 4  */
-	_STRUCT_XMM_REG		__fpu_ymmh5;		/* YMMH 5  */
-	_STRUCT_XMM_REG		__fpu_ymmh6;		/* YMMH 6  */
-	_STRUCT_XMM_REG		__fpu_ymmh7;		/* YMMH 7  */
-	_STRUCT_OPMASK_REG	__fpu_k0;		/* K0 */
-	_STRUCT_OPMASK_REG	__fpu_k1;		/* K1 */
-	_STRUCT_OPMASK_REG	__fpu_k2;		/* K2 */
-	_STRUCT_OPMASK_REG	__fpu_k3;		/* K3 */
-	_STRUCT_OPMASK_REG	__fpu_k4;		/* K4 */
-	_STRUCT_OPMASK_REG	__fpu_k5;		/* K5 */
-	_STRUCT_OPMASK_REG	__fpu_k6;		/* K6 */
-	_STRUCT_OPMASK_REG	__fpu_k7;		/* K7 */
-	_STRUCT_YMM_REG		__fpu_zmmh0;		/* ZMMH 0  */
-	_STRUCT_YMM_REG		__fpu_zmmh1;		/* ZMMH 1  */
-	_STRUCT_YMM_REG		__fpu_zmmh2;		/* ZMMH 2  */
-	_STRUCT_YMM_REG		__fpu_zmmh3;		/* ZMMH 3  */
-	_STRUCT_YMM_REG		__fpu_zmmh4;		/* ZMMH 4  */
-	_STRUCT_YMM_REG		__fpu_zmmh5;		/* ZMMH 5  */
-	_STRUCT_YMM_REG		__fpu_zmmh6;		/* ZMMH 6  */
-	_STRUCT_YMM_REG		__fpu_zmmh7;		/* ZMMH 7  */
-};
-
-#else /* !__DARWIN_UNIX03 */
-#define	_STRUCT_X86_FLOAT_STATE32	struct i386_float_state
-_STRUCT_X86_FLOAT_STATE32
-{
-	int 			fpu_reserved[2];
-	_STRUCT_FP_CONTROL	fpu_fcw;		/* x87 FPU control word */
-	_STRUCT_FP_STATUS	fpu_fsw;		/* x87 FPU status word */
-	__uint8_t		fpu_ftw;		/* x87 FPU tag word */
-	__uint8_t		fpu_rsrv1;		/* reserved */ 
-	__uint16_t		fpu_fop;		/* x87 FPU Opcode */
-	__uint32_t		fpu_ip;			/* x87 FPU Instruction Pointer offset */
-	__uint16_t		fpu_cs;			/* x87 FPU Instruction Pointer Selector */
-	__uint16_t		fpu_rsrv2;		/* reserved */
-	__uint32_t		fpu_dp;			/* x87 FPU Instruction Operand(Data) Pointer offset */
-	__uint16_t		fpu_ds;			/* x87 FPU Instruction Operand(Data) Pointer Selector */
-	__uint16_t		fpu_rsrv3;		/* reserved */
-	__uint32_t		fpu_mxcsr;		/* MXCSR Register state */
-	__uint32_t		fpu_mxcsrmask;		/* MXCSR mask */
-	_STRUCT_MMST_REG	fpu_stmm0;		/* ST0/MM0   */
-	_STRUCT_MMST_REG	fpu_stmm1;		/* ST1/MM1  */
-	_STRUCT_MMST_REG	fpu_stmm2;		/* ST2/MM2  */
-	_STRUCT_MMST_REG	fpu_stmm3;		/* ST3/MM3  */
-	_STRUCT_MMST_REG	fpu_stmm4;		/* ST4/MM4  */
-	_STRUCT_MMST_REG	fpu_stmm5;		/* ST5/MM5  */
-	_STRUCT_MMST_REG	fpu_stmm6;		/* ST6/MM6  */
-	_STRUCT_MMST_REG	fpu_stmm7;		/* ST7/MM7  */
-	_STRUCT_XMM_REG		fpu_xmm0;		/* XMM 0  */
-	_STRUCT_XMM_REG		fpu_xmm1;		/* XMM 1  */
-	_STRUCT_XMM_REG		fpu_xmm2;		/* XMM 2  */
-	_STRUCT_XMM_REG		fpu_xmm3;		/* XMM 3  */
-	_STRUCT_XMM_REG		fpu_xmm4;		/* XMM 4  */
-	_STRUCT_XMM_REG		fpu_xmm5;		/* XMM 5  */
-	_STRUCT_XMM_REG		fpu_xmm6;		/* XMM 6  */
-	_STRUCT_XMM_REG		fpu_xmm7;		/* XMM 7  */
-	char			fpu_rsrv4[14*16];	/* reserved */
-	int 			fpu_reserved1;
-};
-
-#define	_STRUCT_X86_AVX_STATE32	struct i386_avx_state
-_STRUCT_X86_AVX_STATE32
-{
-	int 			fpu_reserved[2];
-	_STRUCT_FP_CONTROL	fpu_fcw;		/* x87 FPU control word */
-	_STRUCT_FP_STATUS	fpu_fsw;		/* x87 FPU status word */
-	__uint8_t		fpu_ftw;		/* x87 FPU tag word */
-	__uint8_t		fpu_rsrv1;		/* reserved */ 
-	__uint16_t		fpu_fop;		/* x87 FPU Opcode */
-	__uint32_t		fpu_ip;			/* x87 FPU Instruction Pointer offset */
-	__uint16_t		fpu_cs;			/* x87 FPU Instruction Pointer Selector */
-	__uint16_t		fpu_rsrv2;		/* reserved */
-	__uint32_t		fpu_dp;			/* x87 FPU Instruction Operand(Data) Pointer offset */
-	__uint16_t		fpu_ds;			/* x87 FPU Instruction Operand(Data) Pointer Selector */
-	__uint16_t		fpu_rsrv3;		/* reserved */
-	__uint32_t		fpu_mxcsr;		/* MXCSR Register state */
-	__uint32_t		fpu_mxcsrmask;		/* MXCSR mask */
-	_STRUCT_MMST_REG	fpu_stmm0;		/* ST0/MM0   */
-	_STRUCT_MMST_REG	fpu_stmm1;		/* ST1/MM1  */
-	_STRUCT_MMST_REG	fpu_stmm2;		/* ST2/MM2  */
-	_STRUCT_MMST_REG	fpu_stmm3;		/* ST3/MM3  */
-	_STRUCT_MMST_REG	fpu_stmm4;		/* ST4/MM4  */
-	_STRUCT_MMST_REG	fpu_stmm5;		/* ST5/MM5  */
-	_STRUCT_MMST_REG	fpu_stmm6;		/* ST6/MM6  */
-	_STRUCT_MMST_REG	fpu_stmm7;		/* ST7/MM7  */
-	_STRUCT_XMM_REG		fpu_xmm0;		/* XMM 0  */
-	_STRUCT_XMM_REG		fpu_xmm1;		/* XMM 1  */
-	_STRUCT_XMM_REG		fpu_xmm2;		/* XMM 2  */
-	_STRUCT_XMM_REG		fpu_xmm3;		/* XMM 3  */
-	_STRUCT_XMM_REG		fpu_xmm4;		/* XMM 4  */
-	_STRUCT_XMM_REG		fpu_xmm5;		/* XMM 5  */
-	_STRUCT_XMM_REG		fpu_xmm6;		/* XMM 6  */
-	_STRUCT_XMM_REG		fpu_xmm7;		/* XMM 7  */
-	char			fpu_rsrv4[14*16];	/* reserved */
-	int 			fpu_reserved1;
-	char			avx_reserved1[64];
-	_STRUCT_XMM_REG		fpu_ymmh0;		/* YMMH 0  */
-	_STRUCT_XMM_REG		fpu_ymmh1;		/* YMMH 1  */
-	_STRUCT_XMM_REG		fpu_ymmh2;		/* YMMH 2  */
-	_STRUCT_XMM_REG		fpu_ymmh3;		/* YMMH 3  */
-	_STRUCT_XMM_REG		fpu_ymmh4;		/* YMMH 4  */
-	_STRUCT_XMM_REG		fpu_ymmh5;		/* YMMH 5  */
-	_STRUCT_XMM_REG		fpu_ymmh6;		/* YMMH 6  */
-	_STRUCT_XMM_REG		fpu_ymmh7;		/* YMMH 7  */
-};
-
-#define	_STRUCT_X86_AVX512_STATE32	struct i386_avx512_state
-_STRUCT_X86_AVX512_STATE32
-{
-	int 			fpu_reserved[2];
-	_STRUCT_FP_CONTROL	fpu_fcw;		/* x87 FPU control word */
-	_STRUCT_FP_STATUS	fpu_fsw;		/* x87 FPU status word */
-	__uint8_t		fpu_ftw;		/* x87 FPU tag word */
-	__uint8_t		fpu_rsrv1;		/* reserved */ 
-	__uint16_t		fpu_fop;		/* x87 FPU Opcode */
-	__uint32_t		fpu_ip;			/* x87 FPU Instruction Pointer offset */
-	__uint16_t		fpu_cs;			/* x87 FPU Instruction Pointer Selector */
-	__uint16_t		fpu_rsrv2;		/* reserved */
-	__uint32_t		fpu_dp;			/* x87 FPU Instruction Operand(Data) Pointer offset */
-	__uint16_t		fpu_ds;			/* x87 FPU Instruction Operand(Data) Pointer Selector */
-	__uint16_t		fpu_rsrv3;		/* reserved */
-	__uint32_t		fpu_mxcsr;		/* MXCSR Register state */
-	__uint32_t		fpu_mxcsrmask;		/* MXCSR mask */
-	_STRUCT_MMST_REG	fpu_stmm0;		/* ST0/MM0   */
-	_STRUCT_MMST_REG	fpu_stmm1;		/* ST1/MM1  */
-	_STRUCT_MMST_REG	fpu_stmm2;		/* ST2/MM2  */
-	_STRUCT_MMST_REG	fpu_stmm3;		/* ST3/MM3  */
-	_STRUCT_MMST_REG	fpu_stmm4;		/* ST4/MM4  */
-	_STRUCT_MMST_REG	fpu_stmm5;		/* ST5/MM5  */
-	_STRUCT_MMST_REG	fpu_stmm6;		/* ST6/MM6  */
-	_STRUCT_MMST_REG	fpu_stmm7;		/* ST7/MM7  */
-	_STRUCT_XMM_REG		fpu_xmm0;		/* XMM 0  */
-	_STRUCT_XMM_REG		fpu_xmm1;		/* XMM 1  */
-	_STRUCT_XMM_REG		fpu_xmm2;		/* XMM 2  */
-	_STRUCT_XMM_REG		fpu_xmm3;		/* XMM 3  */
-	_STRUCT_XMM_REG		fpu_xmm4;		/* XMM 4  */
-	_STRUCT_XMM_REG		fpu_xmm5;		/* XMM 5  */
-	_STRUCT_XMM_REG		fpu_xmm6;		/* XMM 6  */
-	_STRUCT_XMM_REG		fpu_xmm7;		/* XMM 7  */
-	char			fpu_rsrv4[14*16];	/* reserved */
-	int 			fpu_reserved1;
-	char			avx_reserved1[64];
-	_STRUCT_XMM_REG		fpu_ymmh0;		/* YMMH 0  */
-	_STRUCT_XMM_REG		fpu_ymmh1;		/* YMMH 1  */
-	_STRUCT_XMM_REG		fpu_ymmh2;		/* YMMH 2  */
-	_STRUCT_XMM_REG		fpu_ymmh3;		/* YMMH 3  */
-	_STRUCT_XMM_REG		fpu_ymmh4;		/* YMMH 4  */
-	_STRUCT_XMM_REG		fpu_ymmh5;		/* YMMH 5  */
-	_STRUCT_XMM_REG		fpu_ymmh6;		/* YMMH 6  */
-	_STRUCT_XMM_REG		fpu_ymmh7;		/* YMMH 7  */
-	_STRUCT_OPMASK_REG	fpu_k0;			/* K0 */
-	_STRUCT_OPMASK_REG	fpu_k1;			/* K1 */
-	_STRUCT_OPMASK_REG	fpu_k2;			/* K2 */
-	_STRUCT_OPMASK_REG	fpu_k3;			/* K3 */
-	_STRUCT_OPMASK_REG	fpu_k4;			/* K4 */
-	_STRUCT_OPMASK_REG	fpu_k5;			/* K5 */
-	_STRUCT_OPMASK_REG	fpu_k6;			/* K6 */
-	_STRUCT_OPMASK_REG	fpu_k7;			/* K7 */
-	_STRUCT_YMM_REG		fpu_zmmh0;		/* ZMMH 0  */
-	_STRUCT_YMM_REG		fpu_zmmh1;		/* ZMMH 1  */
-	_STRUCT_YMM_REG		fpu_zmmh2;		/* ZMMH 2  */
-	_STRUCT_YMM_REG		fpu_zmmh3;		/* ZMMH 3  */
-	_STRUCT_YMM_REG		fpu_zmmh4;		/* ZMMH 4  */
-	_STRUCT_YMM_REG		fpu_zmmh5;		/* ZMMH 5  */
-	_STRUCT_YMM_REG		fpu_zmmh6;		/* ZMMH 6  */
-	_STRUCT_YMM_REG		fpu_zmmh7;		/* ZMMH 7  */
-};
-
-#endif /* !__DARWIN_UNIX03 */
-
-#if __DARWIN_UNIX03
-#define _STRUCT_X86_EXCEPTION_STATE32	struct __darwin_i386_exception_state
-_STRUCT_X86_EXCEPTION_STATE32
-{
-	__uint16_t	__trapno;
-	__uint16_t	__cpu;
-	__uint32_t	__err;
-	__uint32_t	__faultvaddr;
-};
-#else /* !__DARWIN_UNIX03 */
-#define _STRUCT_X86_EXCEPTION_STATE32	struct i386_exception_state
-_STRUCT_X86_EXCEPTION_STATE32
-{
-	__uint16_t	trapno;
-	__uint16_t	cpu;
-	__uint32_t	err;
-	__uint32_t	faultvaddr;
-};
-#endif /* !__DARWIN_UNIX03 */
-
-#if __DARWIN_UNIX03
-#define _STRUCT_X86_DEBUG_STATE32	struct __darwin_x86_debug_state32
-_STRUCT_X86_DEBUG_STATE32
-{
-	unsigned int	__dr0;
-	unsigned int	__dr1;
-	unsigned int	__dr2;
-	unsigned int	__dr3;
-	unsigned int	__dr4;
-	unsigned int	__dr5;
-	unsigned int	__dr6;
-	unsigned int	__dr7;
-};
-#else /* !__DARWIN_UNIX03 */
-#define _STRUCT_X86_DEBUG_STATE32	struct x86_debug_state32
-_STRUCT_X86_DEBUG_STATE32
-{
-	unsigned int	dr0;
-	unsigned int	dr1;
-	unsigned int	dr2;
-	unsigned int	dr3;
-	unsigned int	dr4;
-	unsigned int	dr5;
-	unsigned int	dr6;
-	unsigned int	dr7;
-};
-#endif /* !__DARWIN_UNIX03 */
-
-#define	_STRUCT_X86_PAGEIN_STATE	struct __x86_pagein_state
-_STRUCT_X86_PAGEIN_STATE
-{
-	int __pagein_error;
-};
-
-/*
- * 64 bit versions of the above
- */
-
-#if __DARWIN_UNIX03
-#define	_STRUCT_X86_THREAD_STATE64	struct __darwin_x86_thread_state64
-_STRUCT_X86_THREAD_STATE64
-{
-	__uint64_t	__rax;
-	__uint64_t	__rbx;
-	__uint64_t	__rcx;
-	__uint64_t	__rdx;
-	__uint64_t	__rdi;
-	__uint64_t	__rsi;
-	__uint64_t	__rbp;
-	__uint64_t	__rsp;
-	__uint64_t	__r8;
-	__uint64_t	__r9;
-	__uint64_t	__r10;
-	__uint64_t	__r11;
-	__uint64_t	__r12;
-	__uint64_t	__r13;
-	__uint64_t	__r14;
-	__uint64_t	__r15;
-	__uint64_t	__rip;
-	__uint64_t	__rflags;
-	__uint64_t	__cs;
-	__uint64_t	__fs;
-	__uint64_t	__gs;
-};
-#else /* !__DARWIN_UNIX03 */
-#define	_STRUCT_X86_THREAD_STATE64	struct x86_thread_state64
-_STRUCT_X86_THREAD_STATE64
-{
-	__uint64_t	rax;
-	__uint64_t	rbx;
-	__uint64_t	rcx;
-	__uint64_t	rdx;
-	__uint64_t	rdi;
-	__uint64_t	rsi;
-	__uint64_t	rbp;
-	__uint64_t	rsp;
-	__uint64_t	r8;
-	__uint64_t	r9;
-	__uint64_t	r10;
-	__uint64_t	r11;
-	__uint64_t	r12;
-	__uint64_t	r13;
-	__uint64_t	r14;
-	__uint64_t	r15;
-	__uint64_t	rip;
-	__uint64_t	rflags;
-	__uint64_t	cs;
-	__uint64_t	fs;
-	__uint64_t	gs;
-};
-#endif /* !__DARWIN_UNIX03 */
-
-/*
- * 64 bit versions of the above (complete)
- */
-
-#if __DARWIN_UNIX03
-#define	_STRUCT_X86_THREAD_FULL_STATE64	struct __darwin_x86_thread_full_state64
-_STRUCT_X86_THREAD_FULL_STATE64
-{
-	_STRUCT_X86_THREAD_STATE64	__ss64;
-	__uint64_t			__ds;
-	__uint64_t			__es;
-	__uint64_t			__ss;
-	__uint64_t			__gsbase;
-};
-#else /* !__DARWIN_UNIX03 */
-#define	_STRUCT_X86_THREAD_FULL_STATE64	struct x86_thread_full_state64
-_STRUCT_X86_THREAD_FULL_STATE64
-{
-	_STRUCT_X86_THREAD_STATE64	ss64;
-	__uint64_t			ds;
-	__uint64_t			es;
-	__uint64_t			ss;
-	__uint64_t			gsbase;
-};
-#endif /* !__DARWIN_UNIX03 */
-
-
-#if __DARWIN_UNIX03
-#define	_STRUCT_X86_FLOAT_STATE64	struct __darwin_x86_float_state64
-_STRUCT_X86_FLOAT_STATE64
-{
-	int 			__fpu_reserved[2];
-	_STRUCT_FP_CONTROL	__fpu_fcw;		/* x87 FPU control word */
-	_STRUCT_FP_STATUS	__fpu_fsw;		/* x87 FPU status word */
-	__uint8_t		__fpu_ftw;		/* x87 FPU tag word */
-	__uint8_t		__fpu_rsrv1;		/* reserved */ 
-	__uint16_t		__fpu_fop;		/* x87 FPU Opcode */
-
-	/* x87 FPU Instruction Pointer */
-	__uint32_t		__fpu_ip;		/* offset */
-	__uint16_t		__fpu_cs;		/* Selector */
-
-	__uint16_t		__fpu_rsrv2;		/* reserved */
-
-	/* x87 FPU Instruction Operand(Data) Pointer */
-	__uint32_t		__fpu_dp;		/* offset */
-	__uint16_t		__fpu_ds;		/* Selector */
-
-	__uint16_t		__fpu_rsrv3;		/* reserved */
-	__uint32_t		__fpu_mxcsr;		/* MXCSR Register state */
-	__uint32_t		__fpu_mxcsrmask;	/* MXCSR mask */
-	_STRUCT_MMST_REG	__fpu_stmm0;		/* ST0/MM0   */
-	_STRUCT_MMST_REG	__fpu_stmm1;		/* ST1/MM1  */
-	_STRUCT_MMST_REG	__fpu_stmm2;		/* ST2/MM2  */
-	_STRUCT_MMST_REG	__fpu_stmm3;		/* ST3/MM3  */
-	_STRUCT_MMST_REG	__fpu_stmm4;		/* ST4/MM4  */
-	_STRUCT_MMST_REG	__fpu_stmm5;		/* ST5/MM5  */
-	_STRUCT_MMST_REG	__fpu_stmm6;		/* ST6/MM6  */
-	_STRUCT_MMST_REG	__fpu_stmm7;		/* ST7/MM7  */
-	_STRUCT_XMM_REG		__fpu_xmm0;		/* XMM 0  */
-	_STRUCT_XMM_REG		__fpu_xmm1;		/* XMM 1  */
-	_STRUCT_XMM_REG		__fpu_xmm2;		/* XMM 2  */
-	_STRUCT_XMM_REG		__fpu_xmm3;		/* XMM 3  */
-	_STRUCT_XMM_REG		__fpu_xmm4;		/* XMM 4  */
-	_STRUCT_XMM_REG		__fpu_xmm5;		/* XMM 5  */
-	_STRUCT_XMM_REG		__fpu_xmm6;		/* XMM 6  */
-	_STRUCT_XMM_REG		__fpu_xmm7;		/* XMM 7  */
-	_STRUCT_XMM_REG		__fpu_xmm8;		/* XMM 8  */
-	_STRUCT_XMM_REG		__fpu_xmm9;		/* XMM 9  */
-	_STRUCT_XMM_REG		__fpu_xmm10;		/* XMM 10  */
-	_STRUCT_XMM_REG		__fpu_xmm11;		/* XMM 11 */
-	_STRUCT_XMM_REG		__fpu_xmm12;		/* XMM 12  */
-	_STRUCT_XMM_REG		__fpu_xmm13;		/* XMM 13  */
-	_STRUCT_XMM_REG		__fpu_xmm14;		/* XMM 14  */
-	_STRUCT_XMM_REG		__fpu_xmm15;		/* XMM 15  */
-	char			__fpu_rsrv4[6*16];	/* reserved */
-	int 			__fpu_reserved1;
-};
-
-#define	_STRUCT_X86_AVX_STATE64	struct __darwin_x86_avx_state64
-_STRUCT_X86_AVX_STATE64
-{
-	int 			__fpu_reserved[2];
-	_STRUCT_FP_CONTROL	__fpu_fcw;		/* x87 FPU control word */
-	_STRUCT_FP_STATUS	__fpu_fsw;		/* x87 FPU status word */
-	__uint8_t		__fpu_ftw;		/* x87 FPU tag word */
-	__uint8_t		__fpu_rsrv1;		/* reserved */ 
-	__uint16_t		__fpu_fop;		/* x87 FPU Opcode */
-
-	/* x87 FPU Instruction Pointer */
-	__uint32_t		__fpu_ip;		/* offset */
-	__uint16_t		__fpu_cs;		/* Selector */
-
-	__uint16_t		__fpu_rsrv2;		/* reserved */
-
-	/* x87 FPU Instruction Operand(Data) Pointer */
-	__uint32_t		__fpu_dp;		/* offset */
-	__uint16_t		__fpu_ds;		/* Selector */
-
-	__uint16_t		__fpu_rsrv3;		/* reserved */
-	__uint32_t		__fpu_mxcsr;		/* MXCSR Register state */
-	__uint32_t		__fpu_mxcsrmask;	/* MXCSR mask */
-	_STRUCT_MMST_REG	__fpu_stmm0;		/* ST0/MM0   */
-	_STRUCT_MMST_REG	__fpu_stmm1;		/* ST1/MM1  */
-	_STRUCT_MMST_REG	__fpu_stmm2;		/* ST2/MM2  */
-	_STRUCT_MMST_REG	__fpu_stmm3;		/* ST3/MM3  */
-	_STRUCT_MMST_REG	__fpu_stmm4;		/* ST4/MM4  */
-	_STRUCT_MMST_REG	__fpu_stmm5;		/* ST5/MM5  */
-	_STRUCT_MMST_REG	__fpu_stmm6;		/* ST6/MM6  */
-	_STRUCT_MMST_REG	__fpu_stmm7;		/* ST7/MM7  */
-	_STRUCT_XMM_REG		__fpu_xmm0;		/* XMM 0  */
-	_STRUCT_XMM_REG		__fpu_xmm1;		/* XMM 1  */
-	_STRUCT_XMM_REG		__fpu_xmm2;		/* XMM 2  */
-	_STRUCT_XMM_REG		__fpu_xmm3;		/* XMM 3  */
-	_STRUCT_XMM_REG		__fpu_xmm4;		/* XMM 4  */
-	_STRUCT_XMM_REG		__fpu_xmm5;		/* XMM 5  */
-	_STRUCT_XMM_REG		__fpu_xmm6;		/* XMM 6  */
-	_STRUCT_XMM_REG		__fpu_xmm7;		/* XMM 7  */
-	_STRUCT_XMM_REG		__fpu_xmm8;		/* XMM 8  */
-	_STRUCT_XMM_REG		__fpu_xmm9;		/* XMM 9  */
-	_STRUCT_XMM_REG		__fpu_xmm10;		/* XMM 10  */
-	_STRUCT_XMM_REG		__fpu_xmm11;		/* XMM 11 */
-	_STRUCT_XMM_REG		__fpu_xmm12;		/* XMM 12  */
-	_STRUCT_XMM_REG		__fpu_xmm13;		/* XMM 13  */
-	_STRUCT_XMM_REG		__fpu_xmm14;		/* XMM 14  */
-	_STRUCT_XMM_REG		__fpu_xmm15;		/* XMM 15  */
-	char			__fpu_rsrv4[6*16];	/* reserved */
-	int 			__fpu_reserved1;
-	char			__avx_reserved1[64];
-	_STRUCT_XMM_REG		__fpu_ymmh0;		/* YMMH 0  */
-	_STRUCT_XMM_REG		__fpu_ymmh1;		/* YMMH 1  */
-	_STRUCT_XMM_REG		__fpu_ymmh2;		/* YMMH 2  */
-	_STRUCT_XMM_REG		__fpu_ymmh3;		/* YMMH 3  */
-	_STRUCT_XMM_REG		__fpu_ymmh4;		/* YMMH 4  */
-	_STRUCT_XMM_REG		__fpu_ymmh5;		/* YMMH 5  */
-	_STRUCT_XMM_REG		__fpu_ymmh6;		/* YMMH 6  */
-	_STRUCT_XMM_REG		__fpu_ymmh7;		/* YMMH 7  */
-	_STRUCT_XMM_REG		__fpu_ymmh8;		/* YMMH 8  */
-	_STRUCT_XMM_REG		__fpu_ymmh9;		/* YMMH 9  */
-	_STRUCT_XMM_REG		__fpu_ymmh10;		/* YMMH 10  */
-	_STRUCT_XMM_REG		__fpu_ymmh11;		/* YMMH 11  */
-	_STRUCT_XMM_REG		__fpu_ymmh12;		/* YMMH 12  */
-	_STRUCT_XMM_REG		__fpu_ymmh13;		/* YMMH 13  */
-	_STRUCT_XMM_REG		__fpu_ymmh14;		/* YMMH 14  */
-	_STRUCT_XMM_REG		__fpu_ymmh15;		/* YMMH 15  */
-};
-
-#define	_STRUCT_X86_AVX512_STATE64	struct __darwin_x86_avx512_state64
-_STRUCT_X86_AVX512_STATE64
-{
-	int 			__fpu_reserved[2];
-	_STRUCT_FP_CONTROL	__fpu_fcw;		/* x87 FPU control word */
-	_STRUCT_FP_STATUS	__fpu_fsw;		/* x87 FPU status word */
-	__uint8_t		__fpu_ftw;		/* x87 FPU tag word */
-	__uint8_t		__fpu_rsrv1;		/* reserved */ 
-	__uint16_t		__fpu_fop;		/* x87 FPU Opcode */
-
-	/* x87 FPU Instruction Pointer */
-	__uint32_t		__fpu_ip;		/* offset */
-	__uint16_t		__fpu_cs;		/* Selector */
-
-	__uint16_t		__fpu_rsrv2;		/* reserved */
-
-	/* x87 FPU Instruction Operand(Data) Pointer */
-	__uint32_t		__fpu_dp;		/* offset */
-	__uint16_t		__fpu_ds;		/* Selector */
-
-	__uint16_t		__fpu_rsrv3;		/* reserved */
-	__uint32_t		__fpu_mxcsr;		/* MXCSR Register state */
-	__uint32_t		__fpu_mxcsrmask;	/* MXCSR mask */
-	_STRUCT_MMST_REG	__fpu_stmm0;		/* ST0/MM0   */
-	_STRUCT_MMST_REG	__fpu_stmm1;		/* ST1/MM1  */
-	_STRUCT_MMST_REG	__fpu_stmm2;		/* ST2/MM2  */
-	_STRUCT_MMST_REG	__fpu_stmm3;		/* ST3/MM3  */
-	_STRUCT_MMST_REG	__fpu_stmm4;		/* ST4/MM4  */
-	_STRUCT_MMST_REG	__fpu_stmm5;		/* ST5/MM5  */
-	_STRUCT_MMST_REG	__fpu_stmm6;		/* ST6/MM6  */
-	_STRUCT_MMST_REG	__fpu_stmm7;		/* ST7/MM7  */
-	_STRUCT_XMM_REG		__fpu_xmm0;		/* XMM 0  */
-	_STRUCT_XMM_REG		__fpu_xmm1;		/* XMM 1  */
-	_STRUCT_XMM_REG		__fpu_xmm2;		/* XMM 2  */
-	_STRUCT_XMM_REG		__fpu_xmm3;		/* XMM 3  */
-	_STRUCT_XMM_REG		__fpu_xmm4;		/* XMM 4  */
-	_STRUCT_XMM_REG		__fpu_xmm5;		/* XMM 5  */
-	_STRUCT_XMM_REG		__fpu_xmm6;		/* XMM 6  */
-	_STRUCT_XMM_REG		__fpu_xmm7;		/* XMM 7  */
-	_STRUCT_XMM_REG		__fpu_xmm8;		/* XMM 8  */
-	_STRUCT_XMM_REG		__fpu_xmm9;		/* XMM 9  */
-	_STRUCT_XMM_REG		__fpu_xmm10;		/* XMM 10  */
-	_STRUCT_XMM_REG		__fpu_xmm11;		/* XMM 11 */
-	_STRUCT_XMM_REG		__fpu_xmm12;		/* XMM 12  */
-	_STRUCT_XMM_REG		__fpu_xmm13;		/* XMM 13  */
-	_STRUCT_XMM_REG		__fpu_xmm14;		/* XMM 14  */
-	_STRUCT_XMM_REG		__fpu_xmm15;		/* XMM 15  */
-	char			__fpu_rsrv4[6*16];	/* reserved */
-	int 			__fpu_reserved1;
-	char			__avx_reserved1[64];
-	_STRUCT_XMM_REG		__fpu_ymmh0;		/* YMMH 0  */
-	_STRUCT_XMM_REG		__fpu_ymmh1;		/* YMMH 1  */
-	_STRUCT_XMM_REG		__fpu_ymmh2;		/* YMMH 2  */
-	_STRUCT_XMM_REG		__fpu_ymmh3;		/* YMMH 3  */
-	_STRUCT_XMM_REG		__fpu_ymmh4;		/* YMMH 4  */
-	_STRUCT_XMM_REG		__fpu_ymmh5;		/* YMMH 5  */
-	_STRUCT_XMM_REG		__fpu_ymmh6;		/* YMMH 6  */
-	_STRUCT_XMM_REG		__fpu_ymmh7;		/* YMMH 7  */
-	_STRUCT_XMM_REG		__fpu_ymmh8;		/* YMMH 8  */
-	_STRUCT_XMM_REG		__fpu_ymmh9;		/* YMMH 9  */
-	_STRUCT_XMM_REG		__fpu_ymmh10;		/* YMMH 10  */
-	_STRUCT_XMM_REG		__fpu_ymmh11;		/* YMMH 11  */
-	_STRUCT_XMM_REG		__fpu_ymmh12;		/* YMMH 12  */
-	_STRUCT_XMM_REG		__fpu_ymmh13;		/* YMMH 13  */
-	_STRUCT_XMM_REG		__fpu_ymmh14;		/* YMMH 14  */
-	_STRUCT_XMM_REG		__fpu_ymmh15;		/* YMMH 15  */
-	_STRUCT_OPMASK_REG	__fpu_k0;		/* K0 */
-	_STRUCT_OPMASK_REG	__fpu_k1;		/* K1 */
-	_STRUCT_OPMASK_REG	__fpu_k2;		/* K2 */
-	_STRUCT_OPMASK_REG	__fpu_k3;		/* K3 */
-	_STRUCT_OPMASK_REG	__fpu_k4;		/* K4 */
-	_STRUCT_OPMASK_REG	__fpu_k5;		/* K5 */
-	_STRUCT_OPMASK_REG	__fpu_k6;		/* K6 */
-	_STRUCT_OPMASK_REG	__fpu_k7;		/* K7 */
-	_STRUCT_YMM_REG		__fpu_zmmh0;		/* ZMMH 0  */
-	_STRUCT_YMM_REG		__fpu_zmmh1;		/* ZMMH 1  */
-	_STRUCT_YMM_REG		__fpu_zmmh2;		/* ZMMH 2  */
-	_STRUCT_YMM_REG		__fpu_zmmh3;		/* ZMMH 3  */
-	_STRUCT_YMM_REG		__fpu_zmmh4;		/* ZMMH 4  */
-	_STRUCT_YMM_REG		__fpu_zmmh5;		/* ZMMH 5  */
-	_STRUCT_YMM_REG		__fpu_zmmh6;		/* ZMMH 6  */
-	_STRUCT_YMM_REG		__fpu_zmmh7;		/* ZMMH 7  */
-	_STRUCT_YMM_REG		__fpu_zmmh8;		/* ZMMH 8  */
-	_STRUCT_YMM_REG		__fpu_zmmh9;		/* ZMMH 9  */
-	_STRUCT_YMM_REG		__fpu_zmmh10;		/* ZMMH 10  */
-	_STRUCT_YMM_REG		__fpu_zmmh11;		/* ZMMH 11  */
-	_STRUCT_YMM_REG		__fpu_zmmh12;		/* ZMMH 12  */
-	_STRUCT_YMM_REG		__fpu_zmmh13;		/* ZMMH 13  */
-	_STRUCT_YMM_REG		__fpu_zmmh14;		/* ZMMH 14  */
-	_STRUCT_YMM_REG		__fpu_zmmh15;		/* ZMMH 15  */
-	_STRUCT_ZMM_REG		__fpu_zmm16;		/* ZMM 16  */
-	_STRUCT_ZMM_REG		__fpu_zmm17;		/* ZMM 17  */
-	_STRUCT_ZMM_REG		__fpu_zmm18;		/* ZMM 18  */
-	_STRUCT_ZMM_REG		__fpu_zmm19;		/* ZMM 19  */
-	_STRUCT_ZMM_REG		__fpu_zmm20;		/* ZMM 20  */
-	_STRUCT_ZMM_REG		__fpu_zmm21;		/* ZMM 21  */
-	_STRUCT_ZMM_REG		__fpu_zmm22;		/* ZMM 22  */
-	_STRUCT_ZMM_REG		__fpu_zmm23;		/* ZMM 23  */
-	_STRUCT_ZMM_REG		__fpu_zmm24;		/* ZMM 24  */
-	_STRUCT_ZMM_REG		__fpu_zmm25;		/* ZMM 25  */
-	_STRUCT_ZMM_REG		__fpu_zmm26;		/* ZMM 26  */
-	_STRUCT_ZMM_REG		__fpu_zmm27;		/* ZMM 27  */
-	_STRUCT_ZMM_REG		__fpu_zmm28;		/* ZMM 28  */
-	_STRUCT_ZMM_REG		__fpu_zmm29;		/* ZMM 29  */
-	_STRUCT_ZMM_REG		__fpu_zmm30;		/* ZMM 30  */
-	_STRUCT_ZMM_REG		__fpu_zmm31;		/* ZMM 31  */
-};
-
-#else /* !__DARWIN_UNIX03 */
-#define	_STRUCT_X86_FLOAT_STATE64	struct x86_float_state64
-_STRUCT_X86_FLOAT_STATE64
-{
-	int 			fpu_reserved[2];
-	_STRUCT_FP_CONTROL	fpu_fcw;		/* x87 FPU control word */
-	_STRUCT_FP_STATUS	fpu_fsw;		/* x87 FPU status word */
-	__uint8_t		fpu_ftw;		/* x87 FPU tag word */
-	__uint8_t		fpu_rsrv1;		/* reserved */ 
-	__uint16_t		fpu_fop;		/* x87 FPU Opcode */
-
-	/* x87 FPU Instruction Pointer */
-	__uint32_t		fpu_ip;			/* offset */
-	__uint16_t		fpu_cs;			/* Selector */
-
-	__uint16_t		fpu_rsrv2;		/* reserved */
-
-	/* x87 FPU Instruction Operand(Data) Pointer */
-	__uint32_t		fpu_dp;			/* offset */
-	__uint16_t		fpu_ds;			/* Selector */
-
-	__uint16_t		fpu_rsrv3;		/* reserved */
-	__uint32_t		fpu_mxcsr;		/* MXCSR Register state */
-	__uint32_t		fpu_mxcsrmask;		/* MXCSR mask */
-	_STRUCT_MMST_REG	fpu_stmm0;		/* ST0/MM0   */
-	_STRUCT_MMST_REG	fpu_stmm1;		/* ST1/MM1  */
-	_STRUCT_MMST_REG	fpu_stmm2;		/* ST2/MM2  */
-	_STRUCT_MMST_REG	fpu_stmm3;		/* ST3/MM3  */
-	_STRUCT_MMST_REG	fpu_stmm4;		/* ST4/MM4  */
-	_STRUCT_MMST_REG	fpu_stmm5;		/* ST5/MM5  */
-	_STRUCT_MMST_REG	fpu_stmm6;		/* ST6/MM6  */
-	_STRUCT_MMST_REG	fpu_stmm7;		/* ST7/MM7  */
-	_STRUCT_XMM_REG		fpu_xmm0;		/* XMM 0  */
-	_STRUCT_XMM_REG		fpu_xmm1;		/* XMM 1  */
-	_STRUCT_XMM_REG		fpu_xmm2;		/* XMM 2  */
-	_STRUCT_XMM_REG		fpu_xmm3;		/* XMM 3  */
-	_STRUCT_XMM_REG		fpu_xmm4;		/* XMM 4  */
-	_STRUCT_XMM_REG		fpu_xmm5;		/* XMM 5  */
-	_STRUCT_XMM_REG		fpu_xmm6;		/* XMM 6  */
-	_STRUCT_XMM_REG		fpu_xmm7;		/* XMM 7  */
-	_STRUCT_XMM_REG		fpu_xmm8;		/* XMM 8  */
-	_STRUCT_XMM_REG		fpu_xmm9;		/* XMM 9  */
-	_STRUCT_XMM_REG		fpu_xmm10;		/* XMM 10  */
-	_STRUCT_XMM_REG		fpu_xmm11;		/* XMM 11 */
-	_STRUCT_XMM_REG		fpu_xmm12;		/* XMM 12  */
-	_STRUCT_XMM_REG		fpu_xmm13;		/* XMM 13  */
-	_STRUCT_XMM_REG		fpu_xmm14;		/* XMM 14  */
-	_STRUCT_XMM_REG		fpu_xmm15;		/* XMM 15  */
-	char			fpu_rsrv4[6*16];	/* reserved */
-	int 			fpu_reserved1;
-};
-
-#define	_STRUCT_X86_AVX_STATE64	struct x86_avx_state64
-_STRUCT_X86_AVX_STATE64
-{
-	int 			fpu_reserved[2];
-	_STRUCT_FP_CONTROL	fpu_fcw;		/* x87 FPU control word */
-	_STRUCT_FP_STATUS	fpu_fsw;		/* x87 FPU status word */
-	__uint8_t		fpu_ftw;		/* x87 FPU tag word */
-	__uint8_t		fpu_rsrv1;		/* reserved */ 
-	__uint16_t		fpu_fop;		/* x87 FPU Opcode */
-
-	/* x87 FPU Instruction Pointer */
-	__uint32_t		fpu_ip;			/* offset */
-	__uint16_t		fpu_cs;			/* Selector */
-
-	__uint16_t		fpu_rsrv2;		/* reserved */
-
-	/* x87 FPU Instruction Operand(Data) Pointer */
-	__uint32_t		fpu_dp;			/* offset */
-	__uint16_t		fpu_ds;			/* Selector */
-
-	__uint16_t		fpu_rsrv3;		/* reserved */
-	__uint32_t		fpu_mxcsr;		/* MXCSR Register state */
-	__uint32_t		fpu_mxcsrmask;		/* MXCSR mask */
-	_STRUCT_MMST_REG	fpu_stmm0;		/* ST0/MM0   */
-	_STRUCT_MMST_REG	fpu_stmm1;		/* ST1/MM1  */
-	_STRUCT_MMST_REG	fpu_stmm2;		/* ST2/MM2  */
-	_STRUCT_MMST_REG	fpu_stmm3;		/* ST3/MM3  */
-	_STRUCT_MMST_REG	fpu_stmm4;		/* ST4/MM4  */
-	_STRUCT_MMST_REG	fpu_stmm5;		/* ST5/MM5  */
-	_STRUCT_MMST_REG	fpu_stmm6;		/* ST6/MM6  */
-	_STRUCT_MMST_REG	fpu_stmm7;		/* ST7/MM7  */
-	_STRUCT_XMM_REG		fpu_xmm0;		/* XMM 0  */
-	_STRUCT_XMM_REG		fpu_xmm1;		/* XMM 1  */
-	_STRUCT_XMM_REG		fpu_xmm2;		/* XMM 2  */
-	_STRUCT_XMM_REG		fpu_xmm3;		/* XMM 3  */
-	_STRUCT_XMM_REG		fpu_xmm4;		/* XMM 4  */
-	_STRUCT_XMM_REG		fpu_xmm5;		/* XMM 5  */
-	_STRUCT_XMM_REG		fpu_xmm6;		/* XMM 6  */
-	_STRUCT_XMM_REG		fpu_xmm7;		/* XMM 7  */
-	_STRUCT_XMM_REG		fpu_xmm8;		/* XMM 8  */
-	_STRUCT_XMM_REG		fpu_xmm9;		/* XMM 9  */
-	_STRUCT_XMM_REG		fpu_xmm10;		/* XMM 10  */
-	_STRUCT_XMM_REG		fpu_xmm11;		/* XMM 11 */
-	_STRUCT_XMM_REG		fpu_xmm12;		/* XMM 12  */
-	_STRUCT_XMM_REG		fpu_xmm13;		/* XMM 13  */
-	_STRUCT_XMM_REG		fpu_xmm14;		/* XMM 14  */
-	_STRUCT_XMM_REG		fpu_xmm15;		/* XMM 15  */
-	char			fpu_rsrv4[6*16];	/* reserved */
-	int 			fpu_reserved1;
-	char			avx_reserved1[64];
-	_STRUCT_XMM_REG		fpu_ymmh0;		/* YMMH 0  */
-	_STRUCT_XMM_REG		fpu_ymmh1;		/* YMMH 1  */
-	_STRUCT_XMM_REG		fpu_ymmh2;		/* YMMH 2  */
-	_STRUCT_XMM_REG		fpu_ymmh3;		/* YMMH 3  */
-	_STRUCT_XMM_REG		fpu_ymmh4;		/* YMMH 4  */
-	_STRUCT_XMM_REG		fpu_ymmh5;		/* YMMH 5  */
-	_STRUCT_XMM_REG		fpu_ymmh6;		/* YMMH 6  */
-	_STRUCT_XMM_REG		fpu_ymmh7;		/* YMMH 7  */
-	_STRUCT_XMM_REG		fpu_ymmh8;		/* YMMH 8  */
-	_STRUCT_XMM_REG		fpu_ymmh9;		/* YMMH 9  */
-	_STRUCT_XMM_REG		fpu_ymmh10;		/* YMMH 10  */
-	_STRUCT_XMM_REG		fpu_ymmh11;		/* YMMH 11  */
-	_STRUCT_XMM_REG		fpu_ymmh12;		/* YMMH 12  */
-	_STRUCT_XMM_REG		fpu_ymmh13;		/* YMMH 13  */
-	_STRUCT_XMM_REG		fpu_ymmh14;		/* YMMH 14  */
-	_STRUCT_XMM_REG		fpu_ymmh15;		/* YMMH 15  */
-};
-
-#define	_STRUCT_X86_AVX512_STATE64	struct x86_avx512_state64
-_STRUCT_X86_AVX512_STATE64
-{
-	int 			fpu_reserved[2];
-	_STRUCT_FP_CONTROL	fpu_fcw;		/* x87 FPU control word */
-	_STRUCT_FP_STATUS	fpu_fsw;		/* x87 FPU status word */
-	__uint8_t		fpu_ftw;		/* x87 FPU tag word */
-	__uint8_t		fpu_rsrv1;		/* reserved */ 
-	__uint16_t		fpu_fop;		/* x87 FPU Opcode */
-
-	/* x87 FPU Instruction Pointer */
-	__uint32_t		fpu_ip;		/* offset */
-	__uint16_t		fpu_cs;		/* Selector */
-
-	__uint16_t		fpu_rsrv2;		/* reserved */
-
-	/* x87 FPU Instruction Operand(Data) Pointer */
-	__uint32_t		fpu_dp;		/* offset */
-	__uint16_t		fpu_ds;		/* Selector */
-
-	__uint16_t		fpu_rsrv3;		/* reserved */
-	__uint32_t		fpu_mxcsr;		/* MXCSR Register state */
-	__uint32_t		fpu_mxcsrmask;	/* MXCSR mask */
-	_STRUCT_MMST_REG	fpu_stmm0;		/* ST0/MM0   */
-	_STRUCT_MMST_REG	fpu_stmm1;		/* ST1/MM1  */
-	_STRUCT_MMST_REG	fpu_stmm2;		/* ST2/MM2  */
-	_STRUCT_MMST_REG	fpu_stmm3;		/* ST3/MM3  */
-	_STRUCT_MMST_REG	fpu_stmm4;		/* ST4/MM4  */
-	_STRUCT_MMST_REG	fpu_stmm5;		/* ST5/MM5  */
-	_STRUCT_MMST_REG	fpu_stmm6;		/* ST6/MM6  */
-	_STRUCT_MMST_REG	fpu_stmm7;		/* ST7/MM7  */
-	_STRUCT_XMM_REG		fpu_xmm0;		/* XMM 0  */
-	_STRUCT_XMM_REG		fpu_xmm1;		/* XMM 1  */
-	_STRUCT_XMM_REG		fpu_xmm2;		/* XMM 2  */
-	_STRUCT_XMM_REG		fpu_xmm3;		/* XMM 3  */
-	_STRUCT_XMM_REG		fpu_xmm4;		/* XMM 4  */
-	_STRUCT_XMM_REG		fpu_xmm5;		/* XMM 5  */
-	_STRUCT_XMM_REG		fpu_xmm6;		/* XMM 6  */
-	_STRUCT_XMM_REG		fpu_xmm7;		/* XMM 7  */
-	_STRUCT_XMM_REG		fpu_xmm8;		/* XMM 8  */
-	_STRUCT_XMM_REG		fpu_xmm9;		/* XMM 9  */
-	_STRUCT_XMM_REG		fpu_xmm10;		/* XMM 10  */
-	_STRUCT_XMM_REG		fpu_xmm11;		/* XMM 11 */
-	_STRUCT_XMM_REG		fpu_xmm12;		/* XMM 12  */
-	_STRUCT_XMM_REG		fpu_xmm13;		/* XMM 13  */
-	_STRUCT_XMM_REG		fpu_xmm14;		/* XMM 14  */
-	_STRUCT_XMM_REG		fpu_xmm15;		/* XMM 15  */
-	char			fpu_rsrv4[6*16];	/* reserved */
-	int 			fpu_reserved1;
-	char			avx_reserved1[64];
-	_STRUCT_XMM_REG		fpu_ymmh0;		/* YMMH 0  */
-	_STRUCT_XMM_REG		fpu_ymmh1;		/* YMMH 1  */
-	_STRUCT_XMM_REG		fpu_ymmh2;		/* YMMH 2  */
-	_STRUCT_XMM_REG		fpu_ymmh3;		/* YMMH 3  */
-	_STRUCT_XMM_REG		fpu_ymmh4;		/* YMMH 4  */
-	_STRUCT_XMM_REG		fpu_ymmh5;		/* YMMH 5  */
-	_STRUCT_XMM_REG		fpu_ymmh6;		/* YMMH 6  */
-	_STRUCT_XMM_REG		fpu_ymmh7;		/* YMMH 7  */
-	_STRUCT_XMM_REG		fpu_ymmh8;		/* YMMH 8  */
-	_STRUCT_XMM_REG		fpu_ymmh9;		/* YMMH 9  */
-	_STRUCT_XMM_REG		fpu_ymmh10;		/* YMMH 10  */
-	_STRUCT_XMM_REG		fpu_ymmh11;		/* YMMH 11  */
-	_STRUCT_XMM_REG		fpu_ymmh12;		/* YMMH 12  */
-	_STRUCT_XMM_REG		fpu_ymmh13;		/* YMMH 13  */
-	_STRUCT_XMM_REG		fpu_ymmh14;		/* YMMH 14  */
-	_STRUCT_XMM_REG		fpu_ymmh15;		/* YMMH 15  */
-	_STRUCT_OPMASK_REG	fpu_k0;			/* K0 */
-	_STRUCT_OPMASK_REG	fpu_k1;			/* K1 */
-	_STRUCT_OPMASK_REG	fpu_k2;			/* K2 */
-	_STRUCT_OPMASK_REG	fpu_k3;			/* K3 */
-	_STRUCT_OPMASK_REG	fpu_k4;			/* K4 */
-	_STRUCT_OPMASK_REG	fpu_k5;			/* K5 */
-	_STRUCT_OPMASK_REG	fpu_k6;			/* K6 */
-	_STRUCT_OPMASK_REG	fpu_k7;			/* K7 */
-	_STRUCT_YMM_REG		fpu_zmmh0;		/* ZMMH 0  */
-	_STRUCT_YMM_REG		fpu_zmmh1;		/* ZMMH 1  */
-	_STRUCT_YMM_REG		fpu_zmmh2;		/* ZMMH 2  */
-	_STRUCT_YMM_REG		fpu_zmmh3;		/* ZMMH 3  */
-	_STRUCT_YMM_REG		fpu_zmmh4;		/* ZMMH 4  */
-	_STRUCT_YMM_REG		fpu_zmmh5;		/* ZMMH 5  */
-	_STRUCT_YMM_REG		fpu_zmmh6;		/* ZMMH 6  */
-	_STRUCT_YMM_REG		fpu_zmmh7;		/* ZMMH 7  */
-	_STRUCT_YMM_REG		fpu_zmmh8;		/* ZMMH 8  */
-	_STRUCT_YMM_REG		fpu_zmmh9;		/* ZMMH 9  */
-	_STRUCT_YMM_REG		fpu_zmmh10;		/* ZMMH 10  */
-	_STRUCT_YMM_REG		fpu_zmmh11;		/* ZMMH 11  */
-	_STRUCT_YMM_REG		fpu_zmmh12;		/* ZMMH 12  */
-	_STRUCT_YMM_REG		fpu_zmmh13;		/* ZMMH 13  */
-	_STRUCT_YMM_REG		fpu_zmmh14;		/* ZMMH 14  */
-	_STRUCT_YMM_REG		fpu_zmmh15;		/* ZMMH 15  */
-	_STRUCT_ZMM_REG		fpu_zmm16;		/* ZMM 16  */
-	_STRUCT_ZMM_REG		fpu_zmm17;		/* ZMM 17  */
-	_STRUCT_ZMM_REG		fpu_zmm18;		/* ZMM 18  */
-	_STRUCT_ZMM_REG		fpu_zmm19;		/* ZMM 19  */
-	_STRUCT_ZMM_REG		fpu_zmm20;		/* ZMM 20  */
-	_STRUCT_ZMM_REG		fpu_zmm21;		/* ZMM 21  */
-	_STRUCT_ZMM_REG		fpu_zmm22;		/* ZMM 22  */
-	_STRUCT_ZMM_REG		fpu_zmm23;		/* ZMM 23  */
-	_STRUCT_ZMM_REG		fpu_zmm24;		/* ZMM 24  */
-	_STRUCT_ZMM_REG		fpu_zmm25;		/* ZMM 25  */
-	_STRUCT_ZMM_REG		fpu_zmm26;		/* ZMM 26  */
-	_STRUCT_ZMM_REG		fpu_zmm27;		/* ZMM 27  */
-	_STRUCT_ZMM_REG		fpu_zmm28;		/* ZMM 28  */
-	_STRUCT_ZMM_REG		fpu_zmm29;		/* ZMM 29  */
-	_STRUCT_ZMM_REG		fpu_zmm30;		/* ZMM 30  */
-	_STRUCT_ZMM_REG		fpu_zmm31;		/* ZMM 31  */
-};
-
-#endif /* !__DARWIN_UNIX03 */
-
-#if __DARWIN_UNIX03
-#define _STRUCT_X86_EXCEPTION_STATE64	struct __darwin_x86_exception_state64
-_STRUCT_X86_EXCEPTION_STATE64
-{
-    __uint16_t	__trapno;
-    __uint16_t	__cpu;
-    __uint32_t	__err;
-    __uint64_t	__faultvaddr;
-};
-#else /* !__DARWIN_UNIX03 */
-#define _STRUCT_X86_EXCEPTION_STATE64	struct x86_exception_state64
-_STRUCT_X86_EXCEPTION_STATE64
-{
-    __uint16_t	trapno;
-    __uint16_t	cpu;
-    __uint32_t	err;
-    __uint64_t	faultvaddr;
-};
-#endif /* !__DARWIN_UNIX03 */
-
-#if __DARWIN_UNIX03
-#define _STRUCT_X86_DEBUG_STATE64	struct __darwin_x86_debug_state64
-_STRUCT_X86_DEBUG_STATE64
-{
-	__uint64_t	__dr0;
-	__uint64_t	__dr1;
-	__uint64_t	__dr2;
-	__uint64_t	__dr3;
-	__uint64_t	__dr4;
-	__uint64_t	__dr5;
-	__uint64_t	__dr6;
-	__uint64_t	__dr7;
-};
-#else /* !__DARWIN_UNIX03 */
-#define _STRUCT_X86_DEBUG_STATE64	struct x86_debug_state64
-_STRUCT_X86_DEBUG_STATE64
-{
-	__uint64_t	dr0;
-	__uint64_t	dr1;
-	__uint64_t	dr2;
-	__uint64_t	dr3;
-	__uint64_t	dr4;
-	__uint64_t	dr5;
-	__uint64_t	dr6;
-	__uint64_t	dr7;
-};
-#endif /* !__DARWIN_UNIX03 */
-
-#if __DARWIN_UNIX03
-#define _STRUCT_X86_CPMU_STATE64	struct __darwin_x86_cpmu_state64
-_STRUCT_X86_CPMU_STATE64
-{
-	__uint64_t __ctrs[16];
-};
-#else /* __DARWIN_UNIX03 */
-#define _STRUCT_X86_CPMU_STATE64	struct x86_cpmu_state64
-_STRUCT_X86_CPMU_STATE64
-{
-	__uint64_t ctrs[16];
-};
-#endif /* !__DARWIN_UNIX03 */
-
-#endif /* _MACH_I386__STRUCTS_H_ */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/i386/asm.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/i386/asm.h
deleted file mode 100644
index 50905a62..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/i386/asm.h
+++ /dev/null
@@ -1,380 +0,0 @@
-/*
- * Copyright (c) 2000-2018 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-/*
- * Mach Operating System
- * Copyright (c) 1991,1990,1989 Carnegie Mellon University
- * All Rights Reserved.
- *
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- */
-
-#ifndef	_I386_ASM_H_
-#define	_I386_ASM_H_
-
-#if defined(__i386__)
-
-#define S_PC	 (%esp)
-#define S_ARG0	 4(%esp)
-#define S_ARG1	 8(%esp)
-#define S_ARG2	12(%esp)
-#define S_ARG3	16(%esp)
-#define S_ARG4	20(%esp)
-
-#define FRAME	pushl %ebp; movl %esp, %ebp
-#define EMARF	leave
-
-#define B_LINK	 (%ebp)
-#define B_PC	 4(%ebp)
-#define B_ARG0	 8(%ebp)
-#define B_ARG1	12(%ebp)
-#define B_ARG2	16(%ebp)
-#define B_ARG3	20(%ebp)
-
-#elif defined(__x86_64__)
-
-#define S_PC	 (%rsp)
-
-#define FRAME	pushq %rbp; movq %rsp, %rbp
-#define EMARF	leave
-
-#define B_LINK	 (%rbp)
-#define B_PC	 8(%rbp)
-
-#else
-#error unsupported architecture
-#endif
-
-/* There is another definition of ALIGN for .c sources */
-#ifdef ASSEMBLER
-#define ALIGN 4,0x90
-#endif /* ASSEMBLER */
-
-#ifndef FALIGN
-#define FALIGN ALIGN
-#endif
-
-#define LB(x,n) n
-#if	__STDC__
-#ifndef __NO_UNDERSCORES__
-#define	LCL(x)	L ## x
-#define EXT(x) _ ## x
-#define LEXT(x) _ ## x ## :
-#else
-#define	LCL(x)	.L ## x
-#define EXT(x) x
-#define LEXT(x) x ## :
-#endif
-#define LBc(x,n) n ## :
-#define LBb(x,n) n ## b
-#define LBf(x,n) n ## f
-#else /* __STDC__ */
-#ifndef __NO_UNDERSCORES__
-#define LCL(x) L/**/x
-#define EXT(x) _/**/x
-#define LEXT(x) _/**/x/**/:
-#else /* __NO_UNDERSCORES__ */
-#define	LCL(x)	.L/**/x
-#define EXT(x) x
-#define LEXT(x) x/**/:
-#endif /* __NO_UNDERSCORES__ */
-#define LBc(x,n) n/**/:
-#define LBb(x,n) n/**/b
-#define LBf(x,n) n/**/f
-#endif /* __STDC__ */
-
-#define SVC .byte 0x9a; .long 0; .word 0x7
-
-#define RPC_SVC .byte 0x9a; .long 0; .word 0xf
-
-#define String	.asciz
-#define Value	.word
-#define Times(a,b) (a*b)
-#define Divide(a,b) (a/b)
-
-#define INB	inb	%dx, %al
-#define OUTB	outb	%al, %dx
-#define INL	inl	%dx, %eax
-#define OUTL	outl	%eax, %dx
-
-#define data16	.byte 0x66
-#define addr16	.byte 0x67
-
-#define MCOUNT
-
-#if defined(__SHARED__)
-#define MCOUNT		; .data;\
-			.align ALIGN;\
-			LBc(x, 8) .long 0;\
-			.text;\
-			Gpush;\
-			Gload;\
-			leal Gotoff(LBb(x,8)),%edx;\
-			Egaddr(%eax,_mcount_ptr);\
-			Gpop;\
-			call *(%eax);
-#endif /* __SHARED__ */
-
-#ifdef __ELF__
-#define ELF_FUNC(x)	.type x,@function
-#define ELF_DATA(x)	.type x,@object
-#define ELF_SIZE(x,s)	.size x,s
-#else
-#define ELF_FUNC(x)
-#define ELF_DATA(x)
-#define ELF_SIZE(x,s)
-#endif
-
-#define	Entry(x)	.globl EXT(x); ELF_FUNC(EXT(x)); .align FALIGN; LEXT(x)
-#define	ENTRY(x)	Entry(x) MCOUNT
-#define	ENTRY2(x,y)	.globl EXT(x); .globl EXT(y); \
-			ELF_FUNC(EXT(x)); ELF_FUNC(EXT(y)); \
-			.align FALIGN; LEXT(x); LEXT(y) \
-			MCOUNT
-#if __STDC__
-#define	ASENTRY(x) 	.globl x; .align FALIGN; x ## : ELF_FUNC(x) MCOUNT
-#else
-#define	ASENTRY(x) 	.globl x; .align FALIGN; x: ELF_FUNC(x) MCOUNT
-#endif /* __STDC__ */
-
-#define	DATA(x)		.globl EXT(x); ELF_DATA(EXT(x)); .align ALIGN; LEXT(x)
-
-#define End(x)		ELF_SIZE(x,.-x)
-#define END(x)		End(EXT(x))
-#define ENDDATA(x)	END(x)
-#define Enddata(x)	End(x)
-
-/*
- * ELF shared library accessor macros.
- * Gpush saves the %ebx register used for the GOT address
- * Gpop pops %ebx if we need a GOT
- * Gload loads %ebx with the GOT address if shared libraries are used
- * Gcall calls an external function.
- * Gotoff allows you to reference local labels.
- * Gotoff2 allows you to reference local labels with an index reg.
- * Gotoff3 allows you to reference local labels with an index reg & size.
- * Gaddr loads up a register with an address of an external item.
- * Gstack is the number of bytes that Gpush pushes on the stack.
- *
- * Varients of the above with E or L prefixes do EXT(name) or LCL(name)
- * respectively.
- */
-
-#ifndef __SHARED__
-#define Gpush
-#define Gpop
-#define Gload
-#define Gcall(func)		call func
-#define Gotoff(lab)		lab
-#define Gotoff2(l,r)		l(r)
-#define Gotoff3(l,r,s)		l(,r,s)
-#define Gaddr(to,lab)		movl $lab,to
-#define Gcmp(lab,reg)		cmpl $lab,reg
-#define Gmemload(lab,reg)	movl lab,reg
-#define Gmemstore(reg,lab,tmp)	movl reg,lab
-#define Gstack			0
-
-#else
-#ifdef __ELF__			/* ELF shared libraries */
-#define Gpush			pushl %ebx
-#define Gpop			popl %ebx
-#define Gload			call 9f; 9: popl %ebx; addl $_GLOBAL_OFFSET_TABLE_+[.-9b],%ebx
-#define Gcall(func)		call EXT(func)@PLT
-#define Gotoff(lab)		lab@GOTOFF(%ebx)
-#define Gotoff2(l,r)		l@GOTOFF(%ebx,r)
-#define Gotoff3(l,r,s)		l@GOTOFF(%ebx,r,s)
-#define Gaddr(to,lab)		movl lab@GOT(%ebx),to
-#define Gcmp(lab,reg)		cmpl reg,lab@GOT(%ebx)
-#define Gmemload(lab,reg)	movl lab@GOT(%ebx),reg; movl (reg),reg
-#define Gmemstore(reg,lab,tmp)	movl lab@GOT(%ebx),tmp; movl reg,(tmp)
-#define Gstack			4
-
-#else				/* ROSE shared libraries */
-#define Gpush
-#define Gpop
-#define Gload
-#define Gcall(func)		call *9f; .data; .align ALIGN; 9: .long func; .text
-#define Gotoff(lab)		lab
-#define Gotoff2(l,r)		l(r)
-#define Gotoff3(l,r,s)		l(,r,s)
-#define Gaddr(to,lab)		movl 9f,to; .data; .align ALIGN; 9: .long lab; .text
-#define Gcmp(lab,reg)		cmpl reg,9f; .data; .align ALIGN; 9: .long lab; .text
-#define Gmemload(lab,reg)	movl 9f,reg; movl (reg),reg; .data; .align ALIGN; 9: .long lab; .text
-#define Gmemstore(reg,lab,tmp)	movl 9f,tmp; movl reg,(tmp); .data; .align ALIGN; 9: .long lab; .text
-#define Gstack			0
-#endif	/* __ELF__ */
-#endif	/* __SHARED__ */
-
-/* Egotoff is not provided, since external symbols should not use @GOTOFF
-   relocations.  */
-#define Egcall(func)		Gcall(EXT(func))
-#define Egaddr(to,lab)		Gaddr(to,EXT(lab))
-#define Egcmp(lab,reg)		Gcmp(EXT(lab),reg)
-#define Egmemload(lab,reg)	Gmemload(EXT(lab),reg)
-#define Egmemstore(reg,lab,tmp)	Gmemstore(reg,EXT(lab),tmp)
-
-#define Lgotoff(lab)		Gotoff(LCL(lab))
-#define Lgotoff2(l,r)		Gotoff2(LCL(l),r)
-#define Lgotoff3(l,r,s)		Gotoff3(LCL(l),r,s)
-#define Lgcmp(lab,reg)		Gcmp(LCL(lab),reg)
-#define Lgmemload(lab,reg)	movl Lgotoff(lab),reg
-#define Lgmemstore(reg,lab,tmp)	movl reg,Lgotoff(lab)
-
-#ifndef ASSEMBLER
-/* These defines are here for .c files that wish to reference global symbols
- * within __asm__ statements. 
- */
-#ifndef __NO_UNDERSCORES__
-#define CC_SYM_PREFIX "_"
-#else
-#define CC_SYM_PREFIX ""
-#endif /* __NO_UNDERSCORES__ */
-#endif /* ASSEMBLER */
-
-/*
- * The following macros make calls into C code.
- * They dynamically align the stack to 16 bytes.
- */
-#if defined(__i386__)
-/*
- * Arguments are moved (not pushed) onto the correctly aligned stack.
- * NOTE: ESI is destroyed in the process, and hence cannot
- * be directly used as a parameter. Users of this macro must
- * independently preserve ESI (a non-volatile) if the routine is
- * intended to be called from C, for instance.
- */
-
-#define CCALL(fn)			\
-	movl	%esp, %esi		;\
-	andl	$0xFFFFFFF0, %esp	;\
-	call	EXT(fn)			;\
-	movl	%esi, %esp
-
-#define CCALL1(fn, arg1)		\
-	movl	%esp, %esi		;\
-	subl	$4, %esp		;\
-	andl	$0xFFFFFFF0, %esp	;\
-	movl	arg1, (%esp)		;\
-	call	EXT(fn)			;\
-	movl	%esi, %esp
-
-#define CCALL2(fn, arg1, arg2)		\
-	movl	%esp, %esi		;\
-	subl	$8, %esp		;\
-	andl	$0xFFFFFFF0, %esp	;\
-	movl	arg2, 4(%esp)		;\
-	movl	arg1, (%esp)		;\
-	call	EXT(fn)			;\
-	movl	%esi, %esp
-
-/* This variant exists to permit adjustment of the stack by "dtrace" */
-#define CCALL1WITHSP(fn, arg1)		\
-	movl	%esp, %esi		;\
-	subl	$12, %esp		;\
-	andl	$0xFFFFFFF0, %esp	;\
-	movl	%esi, 8(%esp)		;\
-	leal	8(%esp), %esi		;\
-	movl	%esi, 4(%esp)		;\
-	movl	arg1, (%esp)		;\
-	call	EXT(fn)			;\
-	movl	8(%esp), %esp
-
-/*
- * CCALL5 is used for callee functions with 3 arguments but
- * where arg2 (a3:a2) and arg3 (a5:a4) are 64-bit values.
- */
-#define CCALL5(fn, a1, a2, a3, a4, a5)	\
-	movl	%esp, %esi		;\
-	subl	$20, %esp		;\
-	andl	$0xFFFFFFF0, %esp	;\
-	movl	a5, 16(%esp)		;\
-	movl	a4, 12(%esp)		;\
-	movl	a3,  8(%esp)		;\
-	movl	a2,  4(%esp)		;\
-	movl	a1,  (%esp)		;\
-	call	EXT(fn)			;\
-	movl	%esi, %esp
-
-#elif defined(__x86_64__)
-
-/* This variant exists to permit adjustment of the stack by "dtrace" */
-#define CCALLWITHSP(fn)				 \
-	mov	%rsp, %r12			;\
-	sub	$8, %rsp			;\
-	and	$0xFFFFFFFFFFFFFFF0, %rsp	;\
-	mov	%r12, (%rsp)			;\
-	leaq	(%rsp), %rsi			;\
-	call	EXT(fn)				;\
-	mov	(%rsp), %rsp
-
-#define CCALL(fn)				 \
-	mov	%rsp, %r12			;\
-	and	$0xFFFFFFFFFFFFFFF0, %rsp	;\
-	call	EXT(fn)				;\
-	mov	%r12, %rsp
-
-#define CCALL1(fn, arg1) 			 \
-	mov	arg1, %rdi 			;\
-	CCALL(fn)
-
-#define CCALL2(fn, arg1, arg2)		 	 \
-	mov	arg1, %rdi 			;\
-	mov	arg2, %rsi 			;\
-	CCALL(fn)
-
-#define CCALL3(fn, arg1, arg2, arg3) 		 \
-	mov	arg1, %rdi 			;\
-	mov	arg2, %rsi 			;\
-	mov	arg3, %rdx 			;\
-	CCALL(fn)
-
-#else
-#error unsupported architecture
-#endif
-
-#endif /* _I386_ASM_H_ */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/i386/boolean.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/i386/boolean.h
deleted file mode 100644
index 70237593..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/i386/boolean.h
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Copyright (c) 2000-2006 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-/*
- * Mach Operating System
- * Copyright (c) 1991,1990,1989 Carnegie Mellon University
- * All Rights Reserved.
- *
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- */
-/*
- */
-
-/*
- *	File:	boolean.h
- *
- *	Boolean type, for I386.
- */
-
-#ifndef _MACH_I386_BOOLEAN_H_
-#define _MACH_I386_BOOLEAN_H_
-
-#if defined(__x86_64__) && !defined(KERNEL)
-typedef unsigned int    boolean_t;
-#else
-typedef int             boolean_t;
-#endif
-
-#endif  /* _MACH_I386_BOOLEAN_H_ */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/i386/exception.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/i386/exception.h
deleted file mode 100644
index 44b5272d..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/i386/exception.h
+++ /dev/null
@@ -1,135 +0,0 @@
-/*
- * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-/*
- * Mach Operating System
- * Copyright (c) 1991,1990,1989,1988 Carnegie Mellon University
- * All Rights Reserved.
- *
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- */
-/*
- */
-
-#ifndef _MACH_I386_EXCEPTION_H_
-#define _MACH_I386_EXCEPTION_H_
-
-/*
- * No machine dependent types for the 80386
- */
-
-#define EXC_TYPES_COUNT 14      /* incl. illegal exception 0 */
-
-/*
- *	Codes and subcodes for 80386 exceptions.
- */
-
-#define EXCEPTION_CODE_MAX      2       /* currently code and subcode */
-
-/*
- *	EXC_BAD_INSTRUCTION
- */
-
-#define EXC_I386_INVOP                  1
-
-/*
- *	EXC_ARITHMETIC
- */
-
-#define EXC_I386_DIV                    1
-#define EXC_I386_INTO                   2
-#define EXC_I386_NOEXT                  3
-#define EXC_I386_EXTOVR                 4
-#define EXC_I386_EXTERR                 5
-#define EXC_I386_EMERR                  6
-#define EXC_I386_BOUND                  7
-#define EXC_I386_SSEEXTERR              8
-
-/*
- *	EXC_SOFTWARE
- *	Note: 0x10000-0x10003 in use for unix signal
- */
-
-/*
- *	EXC_BAD_ACCESS
- */
-
-/*
- *	EXC_BREAKPOINT
- */
-
-#define EXC_I386_SGL                    1
-#define EXC_I386_BPT                    2
-
-#define EXC_I386_DIVERR         0       /* divide by 0 eprror		*/
-#define EXC_I386_SGLSTP         1       /* single step			*/
-#define EXC_I386_NMIFLT         2       /* NMI				*/
-#define EXC_I386_BPTFLT         3       /* breakpoint fault		*/
-#define EXC_I386_INTOFLT        4       /* INTO overflow fault		*/
-#define EXC_I386_BOUNDFLT       5       /* BOUND instruction fault	*/
-#define EXC_I386_INVOPFLT       6       /* invalid opcode fault		*/
-#define EXC_I386_NOEXTFLT       7       /* extension not available fault*/
-#define EXC_I386_DBLFLT         8       /* double fault			*/
-#define EXC_I386_EXTOVRFLT      9       /* extension overrun fault	*/
-#define EXC_I386_INVTSSFLT      10      /* invalid TSS fault		*/
-#define EXC_I386_SEGNPFLT       11      /* segment not present fault	*/
-#define EXC_I386_STKFLT         12      /* stack fault			*/
-#define EXC_I386_GPFLT          13      /* general protection fault	*/
-#define EXC_I386_PGFLT          14      /* page fault			*/
-#define EXC_I386_EXTERRFLT      16      /* extension error fault	*/
-#define EXC_I386_ALIGNFLT       17      /* Alignment fault */
-#define EXC_I386_ENDPERR        33      /* emulated extension error flt	*/
-#define EXC_I386_ENOEXTFLT      32      /* emulated ext not present	*/
-
-
-/*
- *	machine dependent exception masks
- */
-#define EXC_MASK_MACHINE        0
-
-#endif  /* _MACH_I386_EXCEPTION_H_ */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/i386/fp_reg.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/i386/fp_reg.h
deleted file mode 100644
index 35937059..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/i386/fp_reg.h
+++ /dev/null
@@ -1,118 +0,0 @@
-/*
- * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-/*
- * Mach Operating System
- * Copyright (c) 1992-1989 Carnegie Mellon University
- * All Rights Reserved.
- *
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- */
-/*
- */
-
-#ifndef _I386_FP_SAVE_H_
-#define _I386_FP_SAVE_H_
-
-/*
- * Control register
- */
-#define FPC_IE          0x0001          /* enable invalid operation
-	                                 *  exception */
-#define FPC_IM          FPC_IE
-#define FPC_DE          0x0002          /* enable denormalized operation
-	                                 *  exception */
-#define FPC_DM          FPC_DE
-#define FPC_ZE          0x0004          /* enable zero-divide exception */
-#define FPC_ZM          FPC_ZE
-#define FPC_OE          0x0008          /* enable overflow exception */
-#define FPC_OM          FPC_OE
-#define FPC_UE          0x0010          /* enable underflow exception */
-#define FPC_PE          0x0020          /* enable precision exception */
-#define FPC_PC          0x0300          /* precision control: */
-#define FPC_PC_24       0x0000                  /* 24 bits */
-#define FPC_PC_53       0x0200                  /* 53 bits */
-#define FPC_PC_64       0x0300                  /* 64 bits */
-#define FPC_RC          0x0c00          /* rounding control: */
-#define FPC_RC_RN       0x0000                  /* round to nearest or even */
-#define FPC_RC_RD       0x0400                  /* round down */
-#define FPC_RC_RU       0x0800                  /* round up */
-#define FPC_RC_CHOP     0x0c00                  /* chop */
-#define FPC_IC          0x1000          /* infinity control (obsolete) */
-#define FPC_IC_PROJ     0x0000                  /* projective infinity */
-#define FPC_IC_AFF      0x1000                  /* affine infinity (std) */
-
-/*
- * Status register
- */
-#define FPS_IE          0x0001          /* invalid operation */
-#define FPS_DE          0x0002          /* denormalized operand */
-#define FPS_ZE          0x0004          /* divide by zero */
-#define FPS_OE          0x0008          /* overflow */
-#define FPS_UE          0x0010          /* underflow */
-#define FPS_PE          0x0020          /* precision */
-#define FPS_SF          0x0040          /* stack flag */
-#define FPS_ES          0x0080          /* error summary */
-#define FPS_C0          0x0100          /* condition code bit 0 */
-#define FPS_C1          0x0200          /* condition code bit 1 */
-#define FPS_C2          0x0400          /* condition code bit 2 */
-#define FPS_TOS         0x3800          /* top-of-stack pointer */
-#define FPS_TOS_SHIFT   11
-#define FPS_C3          0x4000          /* condition code bit 3 */
-#define FPS_BUSY        0x8000          /* FPU busy */
-
-/*
- * Kind of floating-point support provided by kernel.
- */
-#define FP_NO           0               /* no floating point */
-#define FP_SOFT         1               /* software FP emulator */
-#define FP_287          2               /* 80287 */
-#define FP_387          3               /* 80387 or 80486 */
-#define FP_FXSR         4               /* Fast save/restore SIMD Extension */
-
-#endif  /* _I386_FP_SAVE_H_ */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/i386/kern_return.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/i386/kern_return.h
deleted file mode 100644
index 5caefe8a..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/i386/kern_return.h
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-/*
- * Mach Operating System
- * Copyright (c) 1991,1990,1989 Carnegie Mellon University
- * All Rights Reserved.
- *
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- */
-/*
- */
-
-/*
- *	File:	kern_return.h
- *	Author:	Avadis Tevanian, Jr., Michael Wayne Young
- *	Date:	1985
- *
- *	Machine-dependent kernel return definitions.
- */
-
-#ifndef _MACH_I386_KERN_RETURN_H_
-#define _MACH_I386_KERN_RETURN_H_
-
-#ifndef ASSEMBLER
-typedef int             kern_return_t;
-#endif  /* ASSEMBLER */
-
-#endif  /* _MACH_I386_KERN_RETURN_H_ */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/i386/ndr_def.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/i386/ndr_def.h
deleted file mode 100644
index 0e36b2ff..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/i386/ndr_def.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-
-/* NDR record for Intel x86s */
-
-#include <mach/ndr.h>
-
-NDR_record_t NDR_record = {
-	0,                      /* mig_reserved */
-	0,                      /* mig_reserved */
-	0,                      /* mig_reserved */
-	NDR_PROTOCOL_2_0,
-	NDR_INT_LITTLE_ENDIAN,
-	NDR_CHAR_ASCII,
-	NDR_FLOAT_IEEE,
-	0,
-};
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/i386/processor_info.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/i386/processor_info.h
deleted file mode 100644
index a1930895..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/i386/processor_info.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- *	File:	mach/i386/processor_info.h
- *
- *	Data structure definitions for i386 specific processor control
- */
-
-#ifndef _MACH_I386_PROCESSOR_INFO_H_
-#define _MACH_I386_PROCESSOR_INFO_H_
-
-#endif  /* _MACH_I386_PROCESSOR_INFO_H_ */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/i386/rpc.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/i386/rpc.h
deleted file mode 100644
index 396bdea3..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/i386/rpc.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright (c) 2002,2000 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-
-#ifndef _MACH_I386_RPC_H_
-#define _MACH_I386_RPC_H_
-
-#endif  /* _MACH_I386_RPC_H_ */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/i386/sdt_isa.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/i386/sdt_isa.h
deleted file mode 100644
index e990b852..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/i386/sdt_isa.h
+++ /dev/null
@@ -1,414 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License, Version 1.0 only
- * (the "License").  You may not use this file except in compliance
- * with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
- */
-
-#ifndef _MACH_I386_SDT_ISA_H
-#define	_MACH_I386_SDT_ISA_H
-
-/*
- * Only define when testing.  This makes the calls into actual calls to
- * test functions.
- */
-/* #define DTRACE_CALL_TEST */
-
-#define DTRACE_STRINGIFY(s) #s
-#define DTRACE_TOSTRING(s) DTRACE_STRINGIFY(s)
-#define DTRACE_LABEL(p, n)									\
-	"__dtrace_probe$" DTRACE_TOSTRING(%=__LINE__) DTRACE_STRINGIFY(_##p##___##n) ":"	"\n\t"
-
-#ifdef DTRACE_CALL_TEST
-
-#define DTRACE_CALL(p,n)	\
-	DTRACE_LABEL(p,n)	\
-	DTRACE_CALL_INSN(p,n)
-
-#else
-
-#define DTRACE_CALL(p,n)	\
-	DTRACE_LABEL(p,n)	\
-	DTRACE_NOPS
-
-#endif
-
-#ifdef __x86_64__
-
-#define DTRACE_NOPS			\
-	"nop"			"\n\t"	\
-	"nop"			"\n\t"	\
-	"nop"			"\n\t"	
-
-#define DTRACE_CALL_INSN(p,n)						\
-	"call _dtracetest" DTRACE_STRINGIFY(_##p##_##n)	"\n\t"
-
-#define ARG1_EXTENT	1
-#define ARGS2_EXTENT	2
-#define ARGS3_EXTENT	3
-#define ARGS4_EXTENT	4
-#define ARGS5_EXTENT	5
-#define ARGS6_EXTENT	6
-#define ARGS7_EXTENT	7
-#define ARGS8_EXTENT	8
-#define ARGS9_EXTENT	9
-#define ARGS10_EXTENT	10
-
-#define DTRACE_CALL0ARGS(provider, name)							\
-	asm volatile (										\
-		      DTRACE_CALL(provider, name)						\
-	              :										\
-	              :										\
-	);
-
-#define DTRACE_CALL1ARG(provider, name)								\
-	asm volatile ("movq\t0x0(%0),%%rdi"						"\n\t"	\
-		      DTRACE_CALL(provider, name)						\
-	              :										\
-	              : "r" (__dtrace_args)							\
-	              : "memory", "rdi"								\
-	);
-
-#define DTRACE_CALL2ARGS(provider, name)							\
-	asm volatile ("movq\t0x0(%0),%%rdi"						"\n\t"	\
-	              "movq\t0x8(%0),%%rsi"						"\n\t"	\
-		      DTRACE_CALL(provider, name)						\
-	              :										\
-	              : "r" (__dtrace_args)							\
-	              : "memory", "rdi", "rsi"							\
-	);
-
-#define DTRACE_CALL3ARGS(provider, name)							\
-	asm volatile ("movq\t0x0(%0),%%rdi"						"\n\t"	\
-	              "movq\t0x8(%0),%%rsi"						"\n\t"	\
-	              "movq\t0x10(%0),%%rdx"						"\n\t"	\
-		      DTRACE_CALL(provider, name)						\
-	              :										\
-	              : "r" (__dtrace_args)							\
-	              : "memory", "rdi", "rsi", "rdx"						\
-	);
-
-#define DTRACE_CALL4ARGS(provider, name)							\
-	asm volatile ("movq\t0x0(%0),%%rdi"						"\n\t"	\
-	              "movq\t0x8(%0),%%rsi"						"\n\t"	\
-	              "movq\t0x10(%0),%%rdx"						"\n\t"	\
-	              "movq\t0x18(%0),%%rcx"						"\n\t"	\
-		      DTRACE_CALL(provider, name)						\
-	              :										\
-	              : "r" (__dtrace_args)							\
-	              : "memory", "rdi", "rsi", "rdx", "rcx"					\
-	);
-
-#define DTRACE_CALL5ARGS(provider, name)							\
-	asm volatile ("movq\t0x0(%0),%%rdi"						"\n\t"	\
-	              "movq\t0x8(%0),%%rsi"						"\n\t"	\
-	              "movq\t0x10(%0),%%rdx"						"\n\t"	\
-	              "movq\t0x18(%0),%%rcx"						"\n\t"	\
-	              "movq\t0x20(%0),%%r8"						"\n\t"	\
-		      DTRACE_CALL(provider, name)						\
-	              :										\
-	              : "r" (__dtrace_args)							\
-	              : "memory", "rdi", "rsi", "rdx", "rcx", "r8"				\
-	);
-
-#define DTRACE_CALL6ARGS(provider, name)							\
-	asm volatile ("movq\t0x0(%0),%%rdi"						"\n\t"	\
-	              "movq\t0x8(%0),%%rsi"						"\n\t"	\
-	              "movq\t0x10(%0),%%rdx"						"\n\t"	\
-	              "movq\t0x18(%0),%%rcx"						"\n\t"	\
-	              "movq\t0x20(%0),%%r8"						"\n\t"	\
-	              "movq\t0x28(%0),%%r9"						"\n\t"	\
-		      DTRACE_CALL(provider, name)						\
-	              :										\
-	              : "r" (__dtrace_args)							\
-	              : "memory", "rdi", "rsi", "rdx", "rcx", "r8", "r9"			\
-	);
-
-#define DTRACE_CALL7ARGS(provider, name)							\
-	asm volatile ("subq\t$0x8,%%rsp"						"\n\t"	\
-	              "movq\t0x0(%0),%%rdi"						"\n\t"	\
-	              "movq\t0x8(%0),%%rsi"						"\n\t"	\
-	              "movq\t0x10(%0),%%rdx"						"\n\t"	\
-	              "movq\t0x18(%0),%%rcx"						"\n\t"	\
-	              "movq\t0x20(%0),%%r8"						"\n\t"	\
-	              "movq\t0x28(%0),%%r9"						"\n\t"	\
-	              "movq\t0x30(%0),%%rax"						"\n\t"	\
-	              "movq\t%%rax,0x0(%%rsp)"						"\n\t"	\
-		      DTRACE_CALL(provider, name)						\
-	              "addq\t$0x8,%%rsp"						"\n\t"	\
-	              :										\
-	              : "r" (__dtrace_args)							\
-	              : "memory", "rdi", "rsi", "rdx", "rcx", "r8", "r9", "rax"			\
-	);
-
-#endif // __x86_64__
-
-#ifdef __i386__
-
-#define DTRACE_NOPS			\
-	"nop"			"\n\t"	\
-	"leal 0(%%esi), %%esi"	"\n\t"	
-
-#define DTRACE_CALL_INSN(p,n)						\
-	"call _dtracetest" DTRACE_STRINGIFY(_##p##_##n)	"\n\t"
-
-#define ARG1_EXTENT	1
-#define ARGS2_EXTENT	2
-#define ARGS3_EXTENT	4
-#define ARGS4_EXTENT	4
-#define ARGS5_EXTENT	8
-#define ARGS6_EXTENT	8
-#define ARGS7_EXTENT	8
-#define ARGS8_EXTENT	8
-#define ARGS9_EXTENT	12	
-#define ARGS10_EXTENT	12	
-
-/*
- * Because this code is used in the kernel, we must not touch any floating point
- * or specialized registers. This leaves the following registers:
- *
- * eax ; volatile, safe to use
- * ebx ; PIC register, gcc error when used
- * ecx ; volatile, safe to use
- * edx ; volatile, safe to use
- * esi ; non-volatile, otherwise safe to use
- * edi ; non-volatile, otherwise safe to use
- *
- * Using any of the non volatile register causes a spill to stack which is almost
- * certainly a net performance loss. Also, note that the array ref (__dtrace_args)
- * consumes one free register. If all three of the volatile regs are used for load/store,
- * the compiler will spill a register to hold the array ref.
- *
- * The end result is that we only pipeline two loads/stores at a time. Blech.
- */
-
-#define DTRACE_CALL0ARGS(provider, name)							\
-	asm volatile (										\
-	              DTRACE_CALL(provider, name)						\
-	              "# eat trailing nl +tabfrom DTRACE_CALL"					\
-	              :										\
-	              :										\
-	);
-
-#define DTRACE_CALL1ARG(provider, name)								\
-	asm volatile ("subl\t$0x10,%%esp"						"\n\t"	\
-	              "movl\t0x0(%0),%%eax"						"\n\t"	\
-	              "movl\t%%eax,0x0(%%esp)"						"\n\t"	\
-	              DTRACE_CALL(provider, name)						\
-                      "addl\t$0x10,%%esp"							\
-	              :										\
-	              : "r" (__dtrace_args)		       					\
-	              : "memory", "eax"								\
-	);
-
-#define DTRACE_CALL2ARGS(provider, name)							\
-	asm volatile ("subl\t$0x10,%%esp"						"\n\t"	\
-	              "movl\t0x0(%0),%%eax"						"\n\t"	\
-		      "movl\t0x4(%0),%%edx"						"\n\t"	\
-	              "movl\t%%eax,0x0(%%esp)"						"\n\t"	\
-	              "movl\t%%edx,0x4(%%esp)"						"\n\t"	\
-	              DTRACE_CALL(provider, name)						\
-                      "addl\t$0x10,%%esp"							\
-	              :										\
-	              : "r" (__dtrace_args)							\
-	              : "memory", "eax", "edx"							\
-	);
-
-#define DTRACE_CALL3ARGS(provider, name)							\
-	asm volatile ("subl\t$0x10,%%esp"						"\n\t"	\
-	              "movl\t0x0(%0),%%eax"						"\n\t"	\
-		      "movl\t0x4(%0),%%edx"						"\n\t"	\
-	              "movl\t%%eax,0x0(%%esp)"						"\n\t"	\
-	              "movl\t%%edx,0x4(%%esp)"						"\n\t"	\
-	              "movl\t0x8(%0),%%eax"						"\n\t"	\
-	              "movl\t%%eax,0x8(%%esp)"						"\n\t"	\
-	              DTRACE_CALL(provider, name)						\
-                      "addl\t$0x10,%%esp"							\
-	              :										\
-	              : "r" (__dtrace_args)							\
-	              : "memory", "eax", "edx"							\
-	);
-
-#define DTRACE_CALL4ARGS(provider, name)							\
-	asm volatile ("subl\t$0x10,%%esp"						"\n\t"	\
-	              "movl\t0x0(%0),%%eax"						"\n\t"	\
-		      "movl\t0x4(%0),%%edx"						"\n\t"	\
-	              "movl\t%%eax,0x0(%%esp)"						"\n\t"	\
-	              "movl\t%%edx,0x4(%%esp)"						"\n\t"	\
-	              "movl\t0x8(%0),%%eax"						"\n\t"	\
-		      "movl\t0xC(%0),%%edx"						"\n\t"	\
-	              "movl\t%%eax,0x8(%%esp)"						"\n\t"	\
-	              "movl\t%%edx,0xC(%%esp)"						"\n\t"	\
-	              DTRACE_CALL(provider, name)						\
-                      "addl\t$0x10,%%esp"							\
-	              :										\
-	              : "r" (__dtrace_args)							\
-	              : "memory", "eax", "edx"	       						\
-	);
-
-#define DTRACE_CALL5ARGS(provider, name)							\
-	asm volatile ("subl\t$0x20,%%esp"						"\n\t"	\
-	              "movl\t0x0(%0),%%eax"						"\n\t"	\
-		      "movl\t0x4(%0),%%edx"						"\n\t"	\
-	              "movl\t%%eax,0x0(%%esp)"						"\n\t"	\
-	              "movl\t%%edx,0x4(%%esp)"						"\n\t"	\
-	              "movl\t0x8(%0),%%eax"						"\n\t"	\
-		      "movl\t0xC(%0),%%edx"						"\n\t"	\
-	              "movl\t%%eax,0x8(%%esp)"						"\n\t"	\
-	              "movl\t%%edx,0xC(%%esp)"						"\n\t"	\
-	              "movl\t0x10(%0),%%eax"						"\n\t"	\
-	              "movl\t%%eax,0x10(%%esp)"						"\n\t"	\
-	              DTRACE_CALL(provider, name)						\
-                      "addl\t$0x20,%%esp"							\
-	              :										\
-	              : "r" (__dtrace_args)							\
-	              : "memory", "eax", "edx"	       						\
-	);
-
-#define DTRACE_CALL6ARGS(provider, name)							\
-	asm volatile ("subl\t$0x20,%%esp"						"\n\t"	\
-	              "movl\t0x0(%0),%%eax"						"\n\t"	\
-		      "movl\t0x4(%0),%%edx"						"\n\t"	\
-	              "movl\t%%eax,0x0(%%esp)"						"\n\t"	\
-	              "movl\t%%edx,0x4(%%esp)"						"\n\t"	\
-	              "movl\t0x8(%0),%%eax"						"\n\t"	\
-		      "movl\t0xC(%0),%%edx"						"\n\t"	\
-	              "movl\t%%eax,0x8(%%esp)"						"\n\t"	\
-	              "movl\t%%edx,0xC(%%esp)"						"\n\t"	\
-	              "movl\t0x10(%0),%%eax"						"\n\t"	\
-		      "movl\t0x14(%0),%%edx"						"\n\t"	\
-	              "movl\t%%eax,0x10(%%esp)"						"\n\t"	\
-	              "movl\t%%edx,0x14(%%esp)"						"\n\t"	\
-	              DTRACE_CALL(provider, name)						\
-                      "addl\t$0x20,%%esp"							\
-	              :										\
-	              : "r" (__dtrace_args)							\
-	              : "memory", "eax", "edx"	       						\
-	);
-
-#define DTRACE_CALL7ARGS(provider, name)							\
-	asm volatile ("subl\t$0x20,%%esp"						"\n\t"	\
-	              "movl\t0x0(%0),%%eax"						"\n\t"	\
-		      "movl\t0x4(%0),%%edx"						"\n\t"	\
-	              "movl\t%%eax,0x0(%%esp)"						"\n\t"	\
-	              "movl\t%%edx,0x4(%%esp)"						"\n\t"	\
-	              "movl\t0x8(%0),%%eax"						"\n\t"	\
-		      "movl\t0xC(%0),%%edx"						"\n\t"	\
-	              "movl\t%%eax,0x8(%%esp)"						"\n\t"	\
-	              "movl\t%%edx,0xC(%%esp)"						"\n\t"	\
-	              "movl\t0x10(%0),%%eax"						"\n\t"	\
-		      "movl\t0x14(%0),%%edx"						"\n\t"	\
-	              "movl\t%%eax,0x10(%%esp)"						"\n\t"	\
-	              "movl\t%%edx,0x14(%%esp)"						"\n\t"	\
-	              "movl\t0x18(%0),%%eax"						"\n\t"	\
-	              "movl\t%%eax,0x18(%%esp)"						"\n\t"	\
-	              DTRACE_CALL(provider, name)						\
-                      "addl\t$0x20,%%esp"							\
-	              :										\
-	              : "r" (__dtrace_args)							\
-	              : "memory", "eax", "edx"	       						\
-	);
-
-#define DTRACE_CALL8ARGS(provider, name)							\
-	asm volatile ("subl\t$0x20,%%esp"						"\n\t"	\
-	              "movl\t0x0(%0),%%eax"						"\n\t"	\
-		      "movl\t0x4(%0),%%edx"						"\n\t"	\
-	              "movl\t%%eax,0x0(%%esp)"						"\n\t"	\
-	              "movl\t%%edx,0x4(%%esp)"						"\n\t"	\
-	              "movl\t0x8(%0),%%eax"						"\n\t"	\
-		      "movl\t0xC(%0),%%edx"						"\n\t"	\
-	              "movl\t%%eax,0x8(%%esp)"						"\n\t"	\
-	              "movl\t%%edx,0xC(%%esp)"						"\n\t"	\
-	              "movl\t0x10(%0),%%eax"						"\n\t"	\
-		      "movl\t0x14(%0),%%edx"						"\n\t"	\
-	              "movl\t%%eax,0x10(%%esp)"						"\n\t"	\
-	              "movl\t%%edx,0x14(%%esp)"						"\n\t"	\
-	              "movl\t0x18(%0),%%eax"						"\n\t"	\
-		      "movl\t0x1C(%0),%%edx"						"\n\t"	\
-	              "movl\t%%eax,0x18(%%esp)"						"\n\t"	\
-	              "movl\t%%edx,0x1C(%%esp)"						"\n\t"	\
-	              DTRACE_CALL(provider, name)						\
-                      "addl\t$0x20,%%esp"							\
-	              :										\
-	              : "r" (__dtrace_args)							\
-	              : "memory", "eax", "edx"	       						\
-	);
-
-#define DTRACE_CALL9ARGS(provider, name)							\
-	asm volatile ("subl\t$0x30,%%esp"						"\n\t"	\
-	              "movl\t0x0(%0),%%eax"						"\n\t"	\
-		      "movl\t0x4(%0),%%edx"						"\n\t"	\
-	              "movl\t%%eax,0x0(%%esp)"						"\n\t"	\
-	              "movl\t%%edx,0x4(%%esp)"						"\n\t"	\
-	              "movl\t0x8(%0),%%eax"						"\n\t"	\
-		      "movl\t0xC(%0),%%edx"						"\n\t"	\
-	              "movl\t%%eax,0x8(%%esp)"						"\n\t"	\
-	              "movl\t%%edx,0xC(%%esp)"						"\n\t"	\
-	              "movl\t0x10(%0),%%eax"						"\n\t"	\
-		      "movl\t0x14(%0),%%edx"						"\n\t"	\
-	              "movl\t%%eax,0x10(%%esp)"						"\n\t"	\
-	              "movl\t%%edx,0x14(%%esp)"						"\n\t"	\
-	              "movl\t0x18(%0),%%eax"						"\n\t"	\
-		      "movl\t0x1C(%0),%%edx"						"\n\t"	\
-	              "movl\t%%eax,0x18(%%esp)"						"\n\t"	\
-	              "movl\t%%edx,0x1C(%%esp)"						"\n\t"	\
-	              "movl\t0x20(%0),%%eax"						"\n\t"	\
-	              "movl\t%%eax,0x20(%%esp)"						"\n\t"	\
-	              DTRACE_CALL(provider, name)						\
-                      "addl\t$0x30,%%esp"							\
-	              :										\
-	              : "r" (__dtrace_args)							\
-	              : "memory", "eax", "edx"	       						\
-	);
-
-#define DTRACE_CALL10ARGS(provider, name)							\
-	asm volatile ("subl\t$0x30,%%esp"						"\n\t"	\
-	              "movl\t0x0(%0),%%eax"						"\n\t"	\
-		      "movl\t0x4(%0),%%edx"						"\n\t"	\
-	              "movl\t%%eax,0x0(%%esp)"						"\n\t"	\
-	              "movl\t%%edx,0x4(%%esp)"						"\n\t"	\
-	              "movl\t0x8(%0),%%eax"						"\n\t"	\
-		      "movl\t0xC(%0),%%edx"						"\n\t"	\
-	              "movl\t%%eax,0x8(%%esp)"						"\n\t"	\
-	              "movl\t%%edx,0xC(%%esp)"						"\n\t"	\
-	              "movl\t0x10(%0),%%eax"						"\n\t"	\
-		      "movl\t0x14(%0),%%edx"						"\n\t"	\
-	              "movl\t%%eax,0x10(%%esp)"						"\n\t"	\
-	              "movl\t%%edx,0x14(%%esp)"						"\n\t"	\
-	              "movl\t0x18(%0),%%eax"						"\n\t"	\
-		      "movl\t0x1C(%0),%%edx"						"\n\t"	\
-	              "movl\t%%eax,0x18(%%esp)"						"\n\t"	\
-	              "movl\t%%edx,0x1C(%%esp)"						"\n\t"	\
-	              "movl\t0x20(%0),%%eax"						"\n\t"	\
-		      "movl\t0x24(%0),%%edx"						"\n\t"	\
-	              "movl\t%%eax,0x20(%%esp)"						"\n\t"	\
-	              "movl\t%%edx,0x24(%%esp)"						"\n\t"	\
-	              DTRACE_CALL(provider, name)						\
-                      "addl\t$0x30,%%esp"							\
-	              :										\
-	              : "r" (__dtrace_args)							\
-	              : "memory", "eax", "edx"	       						\
-	);
-
-#endif // __i386__
-
-#endif	/* _MACH_I386_SDT_ISA_H */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/i386/thread_state.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/i386/thread_state.h
deleted file mode 100644
index 759489dc..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/i386/thread_state.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright (c) 2000-2006 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-
-#ifndef _MACH_I386_THREAD_STATE_H_
-#define _MACH_I386_THREAD_STATE_H_
-
-/* Size of maximum exported thread state in words */
-#define I386_THREAD_STATE_MAX   (614)    /* Size of biggest state possible */
-
-#if defined (__i386__) || defined(__x86_64__)
-#define THREAD_STATE_MAX        I386_THREAD_STATE_MAX
-#endif
-
-#endif  /* _MACH_I386_THREAD_STATE_H_ */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/i386/thread_status.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/i386/thread_status.h
deleted file mode 100644
index 105fe352..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/i386/thread_status.h
+++ /dev/null
@@ -1,345 +0,0 @@
-/*
- * Copyright (c) 2000-2006 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-/*
- * Mach Operating System
- * Copyright (c) 1991,1990,1989 Carnegie Mellon University
- * All Rights Reserved.
- *
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- */
-/*
- */
-/*
- *	File:	thread_status.h
- *	Author:	Avadis Tevanian, Jr.
- *	Date:	1985
- *
- *	This file contains the structure definitions for the thread
- *	state as applied to I386 processors.
- */
-
-#ifndef _MACH_I386_THREAD_STATUS_H_
-#define _MACH_I386_THREAD_STATUS_H_
-
-#include <mach/machine/_structs.h>
-#include <mach/message.h>
-#include <mach/i386/fp_reg.h>
-#include <mach/i386/thread_state.h>
-#include <i386/eflags.h>
-
-
-/*
- * the i386_xxxx form is kept for legacy purposes since these types
- * are externally known... eventually they should be deprecated.
- * our internal implementation has moved to the following naming convention
- *
- *   x86_xxxx32 names are used to deal with 32 bit states
- *   x86_xxxx64 names are used to deal with 64 bit states
- *   x86_xxxx   names are used to deal with either 32 or 64 bit states
- *	via a self-describing mechanism
- */
-
-/*
- * these are the legacy names which should be deprecated in the future
- * they are externally known which is the only reason we don't just get
- * rid of them
- */
-#define i386_THREAD_STATE               1
-#define i386_FLOAT_STATE                2
-#define i386_EXCEPTION_STATE            3
-
-/*
- * THREAD_STATE_FLAVOR_LIST 0
- *      these are the supported flavors
- */
-#define x86_THREAD_STATE32              1
-#define x86_FLOAT_STATE32               2
-#define x86_EXCEPTION_STATE32           3
-#define x86_THREAD_STATE64              4
-#define x86_FLOAT_STATE64               5
-#define x86_EXCEPTION_STATE64           6
-#define x86_THREAD_STATE                7
-#define x86_FLOAT_STATE                 8
-#define x86_EXCEPTION_STATE             9
-#define x86_DEBUG_STATE32               10
-#define x86_DEBUG_STATE64               11
-#define x86_DEBUG_STATE                 12
-#define THREAD_STATE_NONE               13
-/* 14 and 15 are used for the internal x86_SAVED_STATE flavours */
-/* Arrange for flavors to take sequential values, 32-bit, 64-bit, non-specific */
-#define x86_AVX_STATE32                 16
-#define x86_AVX_STATE64                 (x86_AVX_STATE32 + 1)
-#define x86_AVX_STATE                   (x86_AVX_STATE32 + 2)
-#define x86_AVX512_STATE32              19
-#define x86_AVX512_STATE64              (x86_AVX512_STATE32 + 1)
-#define x86_AVX512_STATE                (x86_AVX512_STATE32 + 2)
-#define x86_PAGEIN_STATE                22
-#define x86_THREAD_FULL_STATE64         23
-
-/*
- * Largest state on this machine:
- * (be sure mach/machine/thread_state.h matches!)
- */
-#define THREAD_MACHINE_STATE_MAX        THREAD_STATE_MAX
-
-/*
- * VALID_THREAD_STATE_FLAVOR is a platform specific macro that when passed
- * an exception flavor will return if that is a defined flavor for that
- * platform. The macro must be manually updated to include all of the valid
- * exception flavors as defined above.
- */
-#define VALID_THREAD_STATE_FLAVOR(x)            \
-	 ((x == x86_THREAD_STATE32)		|| \
-	  (x == x86_FLOAT_STATE32)		|| \
-	  (x == x86_EXCEPTION_STATE32)		|| \
-	  (x == x86_DEBUG_STATE32)		|| \
-	  (x == x86_THREAD_STATE64)		|| \
-	  (x == x86_THREAD_FULL_STATE64)	|| \
-	  (x == x86_FLOAT_STATE64)		|| \
-	  (x == x86_EXCEPTION_STATE64)		|| \
-	  (x == x86_DEBUG_STATE64)		|| \
-	  (x == x86_THREAD_STATE)		|| \
-	  (x == x86_FLOAT_STATE)		|| \
-	  (x == x86_EXCEPTION_STATE)		|| \
-	  (x == x86_DEBUG_STATE)		|| \
-	  (x == x86_AVX_STATE32)		|| \
-	  (x == x86_AVX_STATE64)		|| \
-	  (x == x86_AVX_STATE)			|| \
-	  (x == x86_AVX512_STATE32)		|| \
-	  (x == x86_AVX512_STATE64)		|| \
-	  (x == x86_AVX512_STATE)		|| \
-	  (x == x86_PAGEIN_STATE)		|| \
-	  (x == THREAD_STATE_NONE))
-
-struct x86_state_hdr {
-	uint32_t        flavor;
-	uint32_t        count;
-};
-typedef struct x86_state_hdr x86_state_hdr_t;
-
-/*
- * Default segment register values.
- */
-
-#define USER_CODE_SELECTOR      0x0017
-#define USER_DATA_SELECTOR      0x001f
-#define KERN_CODE_SELECTOR      0x0008
-#define KERN_DATA_SELECTOR      0x0010
-
-/*
- * to be deprecated in the future
- */
-typedef _STRUCT_X86_THREAD_STATE32 i386_thread_state_t;
-#define i386_THREAD_STATE_COUNT ((mach_msg_type_number_t) \
-    ( sizeof (i386_thread_state_t) / sizeof (int) ))
-
-typedef _STRUCT_X86_THREAD_STATE32 x86_thread_state32_t;
-#define x86_THREAD_STATE32_COUNT        ((mach_msg_type_number_t) \
-    ( sizeof (x86_thread_state32_t) / sizeof (int) ))
-
-/*
- * to be deprecated in the future
- */
-typedef _STRUCT_X86_FLOAT_STATE32 i386_float_state_t;
-#define i386_FLOAT_STATE_COUNT ((mach_msg_type_number_t) \
-	        (sizeof(i386_float_state_t)/sizeof(unsigned int)))
-
-typedef _STRUCT_X86_FLOAT_STATE32 x86_float_state32_t;
-#define x86_FLOAT_STATE32_COUNT ((mach_msg_type_number_t) \
-	        (sizeof(x86_float_state32_t)/sizeof(unsigned int)))
-
-typedef _STRUCT_X86_AVX_STATE32 x86_avx_state32_t;
-#define x86_AVX_STATE32_COUNT ((mach_msg_type_number_t) \
-	        (sizeof(x86_avx_state32_t)/sizeof(unsigned int)))
-
-typedef _STRUCT_X86_AVX512_STATE32 x86_avx512_state32_t;
-#define x86_AVX512_STATE32_COUNT ((mach_msg_type_number_t) \
-	        (sizeof(x86_avx512_state32_t)/sizeof(unsigned int)))
-
-/*
- * to be deprecated in the future
- */
-typedef _STRUCT_X86_EXCEPTION_STATE32 i386_exception_state_t;
-#define i386_EXCEPTION_STATE_COUNT      ((mach_msg_type_number_t) \
-    ( sizeof (i386_exception_state_t) / sizeof (int) ))
-
-typedef _STRUCT_X86_EXCEPTION_STATE32 x86_exception_state32_t;
-#define x86_EXCEPTION_STATE32_COUNT     ((mach_msg_type_number_t) \
-    ( sizeof (x86_exception_state32_t) / sizeof (int) ))
-
-#define I386_EXCEPTION_STATE_COUNT i386_EXCEPTION_STATE_COUNT
-
-typedef _STRUCT_X86_DEBUG_STATE32 x86_debug_state32_t;
-#define x86_DEBUG_STATE32_COUNT       ((mach_msg_type_number_t) \
-	( sizeof (x86_debug_state32_t) / sizeof (int) ))
-
-#define X86_DEBUG_STATE32_COUNT x86_DEBUG_STATE32_COUNT
-
-typedef _STRUCT_X86_THREAD_STATE64 x86_thread_state64_t;
-#define x86_THREAD_STATE64_COUNT        ((mach_msg_type_number_t) \
-    ( sizeof (x86_thread_state64_t) / sizeof (int) ))
-
-typedef _STRUCT_X86_THREAD_FULL_STATE64 x86_thread_full_state64_t;
-#define x86_THREAD_FULL_STATE64_COUNT   ((mach_msg_type_number_t) \
-    ( sizeof (x86_thread_full_state64_t) / sizeof (int) ))
-
-typedef _STRUCT_X86_FLOAT_STATE64 x86_float_state64_t;
-#define x86_FLOAT_STATE64_COUNT ((mach_msg_type_number_t) \
-	        (sizeof(x86_float_state64_t)/sizeof(unsigned int)))
-
-typedef _STRUCT_X86_AVX_STATE64 x86_avx_state64_t;
-#define x86_AVX_STATE64_COUNT ((mach_msg_type_number_t) \
-	        (sizeof(x86_avx_state64_t)/sizeof(unsigned int)))
-
-typedef _STRUCT_X86_AVX512_STATE64 x86_avx512_state64_t;
-#define x86_AVX512_STATE64_COUNT ((mach_msg_type_number_t) \
-	        (sizeof(x86_avx512_state64_t)/sizeof(unsigned int)))
-
-typedef _STRUCT_X86_EXCEPTION_STATE64 x86_exception_state64_t;
-#define x86_EXCEPTION_STATE64_COUNT     ((mach_msg_type_number_t) \
-    ( sizeof (x86_exception_state64_t) / sizeof (int) ))
-
-#define X86_EXCEPTION_STATE64_COUNT x86_EXCEPTION_STATE64_COUNT
-
-typedef _STRUCT_X86_DEBUG_STATE64 x86_debug_state64_t;
-#define x86_DEBUG_STATE64_COUNT ((mach_msg_type_number_t) \
-    ( sizeof (x86_debug_state64_t) / sizeof (int) ))
-
-#define X86_DEBUG_STATE64_COUNT x86_DEBUG_STATE64_COUNT
-
-typedef _STRUCT_X86_PAGEIN_STATE x86_pagein_state_t;
-#define x86_PAGEIN_STATE_COUNT \
-    ((mach_msg_type_number_t)(sizeof(x86_pagein_state_t) / sizeof(int)))
-
-#define X86_PAGEIN_STATE_COUNT x86_PAGEIN_STATE_COUNT
-
-/*
- * Combined thread, float and exception states
- */
-struct x86_thread_state {
-	x86_state_hdr_t                 tsh;
-	union {
-		x86_thread_state32_t        ts32;
-		x86_thread_state64_t        ts64;
-	} uts;
-};
-
-struct x86_float_state {
-	x86_state_hdr_t                 fsh;
-	union {
-		x86_float_state32_t     fs32;
-		x86_float_state64_t     fs64;
-	} ufs;
-};
-
-struct x86_exception_state {
-	x86_state_hdr_t                 esh;
-	union {
-		x86_exception_state32_t es32;
-		x86_exception_state64_t es64;
-	} ues;
-};
-
-struct x86_debug_state {
-	x86_state_hdr_t                 dsh;
-	union {
-		x86_debug_state32_t     ds32;
-		x86_debug_state64_t     ds64;
-	} uds;
-};
-
-struct x86_avx_state {
-	x86_state_hdr_t                 ash;
-	union {
-		x86_avx_state32_t       as32;
-		x86_avx_state64_t       as64;
-	} ufs;
-};
-
-struct x86_avx512_state {
-	x86_state_hdr_t                 ash;
-	union {
-		x86_avx512_state32_t    as32;
-		x86_avx512_state64_t    as64;
-	} ufs;
-};
-
-typedef struct x86_thread_state x86_thread_state_t;
-#define x86_THREAD_STATE_COUNT  ((mach_msg_type_number_t) \
-	        ( sizeof (x86_thread_state_t) / sizeof (int) ))
-
-typedef struct x86_float_state x86_float_state_t;
-#define x86_FLOAT_STATE_COUNT ((mach_msg_type_number_t) \
-	        (sizeof(x86_float_state_t)/sizeof(unsigned int)))
-
-typedef struct x86_exception_state x86_exception_state_t;
-#define x86_EXCEPTION_STATE_COUNT ((mach_msg_type_number_t) \
-	        (sizeof(x86_exception_state_t)/sizeof(unsigned int)))
-
-typedef struct x86_debug_state x86_debug_state_t;
-#define x86_DEBUG_STATE_COUNT ((mach_msg_type_number_t) \
-	        (sizeof(x86_debug_state_t)/sizeof(unsigned int)))
-
-typedef struct x86_avx_state x86_avx_state_t;
-#define x86_AVX_STATE_COUNT ((mach_msg_type_number_t) \
-	        (sizeof(x86_avx_state_t)/sizeof(unsigned int)))
-
-typedef struct x86_avx512_state x86_avx512_state_t;
-#define x86_AVX512_STATE_COUNT ((mach_msg_type_number_t) \
-	        (sizeof(x86_avx512_state_t)/sizeof(unsigned int)))
-
-/*
- * Machine-independent way for servers and Mach's exception mechanism to
- * choose the most efficient state flavor for exception RPC's:
- */
-#define MACHINE_THREAD_STATE            x86_THREAD_STATE
-#define MACHINE_THREAD_STATE_COUNT      x86_THREAD_STATE_COUNT
-
-
-#endif  /* _MACH_I386_THREAD_STATUS_H_ */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/i386/vm_param.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/i386/vm_param.h
deleted file mode 100644
index fc37cd1d..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/i386/vm_param.h
+++ /dev/null
@@ -1,170 +0,0 @@
-/*
- * Copyright (c) 2000-2012 Apple Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-/*
- * Mach Operating System
- * Copyright (c) 1991,1990,1989,1988 Carnegie Mellon University
- * All Rights Reserved.
- *
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- */
-
-/*
- * Copyright (c) 1994 The University of Utah and
- * the Computer Systems Laboratory at the University of Utah (CSL).
- * All rights reserved.
- *
- * Permission to use, copy, modify and distribute this software is hereby
- * granted provided that (1) source code retains these copyright, permission,
- * and disclaimer notices, and (2) redistributions including binaries
- * reproduce the notices in supporting documentation, and (3) all advertising
- * materials mentioning features or use of this software display the following
- * acknowledgement: ``This product includes software developed by the
- * Computer Systems Laboratory at the University of Utah.''
- *
- * THE UNIVERSITY OF UTAH AND CSL ALLOW FREE USE OF THIS SOFTWARE IN ITS "AS
- * IS" CONDITION.  THE UNIVERSITY OF UTAH AND CSL DISCLAIM ANY LIABILITY OF
- * ANY KIND FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * CSL requests users of this software to return to csl-dist@cs.utah.edu any
- * improvements that they make and grant CSL redistribution rights.
- *
- */
-
-/*
- *	File:	vm_param.h
- *	Author:	Avadis Tevanian, Jr.
- *	Date:	1985
- *
- *	I386 machine dependent virtual memory parameters.
- *	Most of the declarations are preceeded by I386_ (or i386_)
- *	which is OK because only I386 specific code will be using
- *	them.
- */
-
-#ifndef _MACH_I386_VM_PARAM_H_
-#define _MACH_I386_VM_PARAM_H_
-
-#define BYTE_SIZE               8               /* byte size in bits */
-
-#define I386_PGBYTES            4096            /* bytes per 80386 page */
-#define I386_PGSHIFT            12              /* bitshift for pages */
-
-#define PAGE_SIZE               I386_PGBYTES
-#define PAGE_SHIFT              I386_PGSHIFT
-#define PAGE_MASK               (PAGE_SIZE - 1)
-
-#define PAGE_MAX_SHIFT          PAGE_SHIFT
-#define PAGE_MAX_SIZE           PAGE_SIZE
-#define PAGE_MAX_MASK           PAGE_MASK
-
-#define PAGE_MIN_SHIFT          PAGE_SHIFT
-#define PAGE_MIN_SIZE           PAGE_SIZE
-#define PAGE_MIN_MASK           PAGE_MASK
-
-#define I386_LPGBYTES           2*1024*1024     /* bytes per large page */
-#define I386_LPGSHIFT           21              /* bitshift for large pages */
-#define I386_LPGMASK            (I386_LPGBYTES-1)
-
-/*
- *	Convert bytes to pages and convert pages to bytes.
- *	No rounding is used.
- */
-
-#define i386_btop(x)            ((ppnum_t)((x) >> I386_PGSHIFT))
-#define machine_btop(x)         i386_btop(x)
-#define i386_ptob(x)            (((pmap_paddr_t)(x)) << I386_PGSHIFT)
-#define machine_ptob(x)         i386_ptob(x)
-
-/*
- *	Round off or truncate to the nearest page.  These will work
- *	for either addresses or counts.  (i.e. 1 byte rounds to 1 page
- *	bytes.
- */
-
-#define i386_round_page(x)      ((((pmap_paddr_t)(x)) + I386_PGBYTES - 1) & \
-	                                ~(I386_PGBYTES-1))
-#define i386_trunc_page(x)      (((pmap_paddr_t)(x)) & ~(I386_PGBYTES-1))
-
-
-
-#define VM_MIN_ADDRESS64        ((user_addr_t) 0x0000000000000000ULL)
-/*
- * default top of user stack... it grows down from here
- */
-#define VM_USRSTACK64           ((user_addr_t) 0x00007FFEEFC00000ULL)
-
-/*
- * XXX TODO: Obsolete?
- */
-#define VM_DYLD64               ((user_addr_t) 0x00007FFF5FC00000ULL)
-#define VM_LIB64_SHR_DATA       ((user_addr_t) 0x00007FFF60000000ULL)
-#define VM_LIB64_SHR_TEXT       ((user_addr_t) 0x00007FFF80000000ULL)
-/*
- * the end of the usable user address space , for now about 47 bits.
- * the 64 bit commpage is past the end of this
- */
-#define VM_MAX_PAGE_ADDRESS     ((user_addr_t) 0x00007FFFFFE00000ULL)
-/*
- * canonical end of user address space for limits checking
- */
-#define VM_MAX_USER_PAGE_ADDRESS ((user_addr_t)0x00007FFFFFFFF000ULL)
-
-
-/* system-wide values */
-#define MACH_VM_MIN_ADDRESS             ((mach_vm_offset_t) 0)
-#define MACH_VM_MAX_ADDRESS             ((mach_vm_offset_t) VM_MAX_PAGE_ADDRESS)
-
-/* process-relative values (all 32-bit legacy only for now) */
-#define VM_MIN_ADDRESS          ((vm_offset_t) 0)
-#define VM_USRSTACK32           ((vm_offset_t) 0xC0000000)      /* ASLR slides stack down by up to 1 MB */
-#define VM_MAX_ADDRESS          ((vm_offset_t) 0xFFE00000)
-
-
-
-#endif  /* _MACH_I386_VM_PARAM_H_ */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/i386/vm_types.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/i386/vm_types.h
deleted file mode 100644
index f75fd05a..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/i386/vm_types.h
+++ /dev/null
@@ -1,142 +0,0 @@
-/*
- * Copyright (c) 2000-2016 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-/*
- * Mach Operating System
- * Copyright (c) 1991,1990,1989,1988 Carnegie Mellon University
- * All Rights Reserved.
- *
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- */
-/*
- */
-
-/*
- *	File:	vm_types.h
- *	Author:	Avadis Tevanian, Jr.
- *	Date: 1985
- *
- *	Header file for VM data types.  I386 version.
- */
-
-#ifndef _MACH_I386_VM_TYPES_H_
-#define _MACH_I386_VM_TYPES_H_
-
-#ifndef ASSEMBLER
-
-#include <i386/_types.h>
-#include <mach/i386/vm_param.h>
-#include <stdint.h>
-
-/*
- * natural_t and integer_t are Mach's legacy types for machine-
- * independent integer types (unsigned, and signed, respectively).
- * Their original purpose was to define other types in a machine/
- * compiler independent way.
- *
- * They also had an implicit "same size as pointer" characteristic
- * to them (i.e. Mach's traditional types are very ILP32 or ILP64
- * centric).  We support x86 ABIs that do not follow either of
- * these models (specifically LP64).  Therefore, we had to make a
- * choice between making these types scale with pointers or stay
- * tied to integers.  Because their use is predominantly tied to
- * to the size of an integer, we are keeping that association and
- * breaking free from pointer size guarantees.
- *
- * New use of these types is discouraged.
- */
-typedef __darwin_natural_t      natural_t;
-typedef int                     integer_t;
-
-/*
- * A vm_offset_t is a type-neutral pointer,
- * e.g. an offset into a virtual memory space.
- */
-#ifdef __LP64__
-typedef uintptr_t               vm_offset_t;
-#else   /* __LP64__ */
-typedef natural_t               vm_offset_t;
-#endif  /* __LP64__ */
-
-/*
- * A vm_size_t is the proper type for e.g.
- * expressing the difference between two
- * vm_offset_t entities.
- */
-#ifdef __LP64__
-typedef uintptr_t               vm_size_t;
-#else   /* __LP64__ */
-typedef natural_t               vm_size_t;
-#endif  /* __LP64__ */
-
-/*
- * This new type is independent of a particular vm map's
- * implementation size - and represents appropriate types
- * for all possible maps.  This is used for interfaces
- * where the size of the map is not known - or we don't
- * want to have to distinguish.
- */
-typedef uint64_t                mach_vm_address_t;
-typedef uint64_t                mach_vm_offset_t;
-typedef uint64_t                mach_vm_size_t;
-
-typedef uint64_t                vm_map_offset_t;
-typedef uint64_t                vm_map_address_t;
-typedef uint64_t                vm_map_size_t;
-
-typedef mach_vm_address_t       mach_port_context_t;
-
-
-#endif  /* ASSEMBLER */
-
-/*
- * If composing messages by hand (please do not)
- */
-#define MACH_MSG_TYPE_INTEGER_T MACH_MSG_TYPE_INTEGER_32
-
-#endif  /* _MACH_I386_VM_TYPES_H_ */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/kern_return.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/kern_return.h
deleted file mode 100644
index cbc29d93..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/kern_return.h
+++ /dev/null
@@ -1,330 +0,0 @@
-/*
- * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-/*
- * Mach Operating System
- * Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University
- * All Rights Reserved.
- *
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- */
-/*
- */
-/*
- *	File:	h/kern_return.h
- *	Author:	Avadis Tevanian, Jr.
- *	Date:	1985
- *
- *	Kernel return codes.
- *
- */
-
-#ifndef _MACH_KERN_RETURN_H_
-#define _MACH_KERN_RETURN_H_
-
-#include <mach/machine/kern_return.h>
-
-#define KERN_SUCCESS                    0
-
-#define KERN_INVALID_ADDRESS            1
-/* Specified address is not currently valid.
- */
-
-#define KERN_PROTECTION_FAILURE         2
-/* Specified memory is valid, but does not permit the
- * required forms of access.
- */
-
-#define KERN_NO_SPACE                   3
-/* The address range specified is already in use, or
- * no address range of the size specified could be
- * found.
- */
-
-#define KERN_INVALID_ARGUMENT           4
-/* The function requested was not applicable to this
- * type of argument, or an argument is invalid
- */
-
-#define KERN_FAILURE                    5
-/* The function could not be performed.  A catch-all.
- */
-
-#define KERN_RESOURCE_SHORTAGE          6
-/* A system resource could not be allocated to fulfill
- * this request.  This failure may not be permanent.
- */
-
-#define KERN_NOT_RECEIVER               7
-/* The task in question does not hold receive rights
- * for the port argument.
- */
-
-#define KERN_NO_ACCESS                  8
-/* Bogus access restriction.
- */
-
-#define KERN_MEMORY_FAILURE             9
-/* During a page fault, the target address refers to a
- * memory object that has been destroyed.  This
- * failure is permanent.
- */
-
-#define KERN_MEMORY_ERROR               10
-/* During a page fault, the memory object indicated
- * that the data could not be returned.  This failure
- * may be temporary; future attempts to access this
- * same data may succeed, as defined by the memory
- * object.
- */
-
-#define KERN_ALREADY_IN_SET             11
-/* The receive right is already a member of the portset.
- */
-
-#define KERN_NOT_IN_SET                 12
-/* The receive right is not a member of a port set.
- */
-
-#define KERN_NAME_EXISTS                13
-/* The name already denotes a right in the task.
- */
-
-#define KERN_ABORTED                    14
-/* The operation was aborted.  Ipc code will
- * catch this and reflect it as a message error.
- */
-
-#define KERN_INVALID_NAME               15
-/* The name doesn't denote a right in the task.
- */
-
-#define KERN_INVALID_TASK               16
-/* Target task isn't an active task.
- */
-
-#define KERN_INVALID_RIGHT              17
-/* The name denotes a right, but not an appropriate right.
- */
-
-#define KERN_INVALID_VALUE              18
-/* A blatant range error.
- */
-
-#define KERN_UREFS_OVERFLOW             19
-/* Operation would overflow limit on user-references.
- */
-
-#define KERN_INVALID_CAPABILITY         20
-/* The supplied (port) capability is improper.
- */
-
-#define KERN_RIGHT_EXISTS               21
-/* The task already has send or receive rights
- * for the port under another name.
- */
-
-#define KERN_INVALID_HOST               22
-/* Target host isn't actually a host.
- */
-
-#define KERN_MEMORY_PRESENT             23
-/* An attempt was made to supply "precious" data
- * for memory that is already present in a
- * memory object.
- */
-
-#define KERN_MEMORY_DATA_MOVED          24
-/* A page was requested of a memory manager via
- * memory_object_data_request for an object using
- * a MEMORY_OBJECT_COPY_CALL strategy, with the
- * VM_PROT_WANTS_COPY flag being used to specify
- * that the page desired is for a copy of the
- * object, and the memory manager has detected
- * the page was pushed into a copy of the object
- * while the kernel was walking the shadow chain
- * from the copy to the object. This error code
- * is delivered via memory_object_data_error
- * and is handled by the kernel (it forces the
- * kernel to restart the fault). It will not be
- * seen by users.
- */
-
-#define KERN_MEMORY_RESTART_COPY        25
-/* A strategic copy was attempted of an object
- * upon which a quicker copy is now possible.
- * The caller should retry the copy using
- * vm_object_copy_quickly. This error code
- * is seen only by the kernel.
- */
-
-#define KERN_INVALID_PROCESSOR_SET      26
-/* An argument applied to assert processor set privilege
- * was not a processor set control port.
- */
-
-#define KERN_POLICY_LIMIT               27
-/* The specified scheduling attributes exceed the thread's
- * limits.
- */
-
-#define KERN_INVALID_POLICY             28
-/* The specified scheduling policy is not currently
- * enabled for the processor set.
- */
-
-#define KERN_INVALID_OBJECT             29
-/* The external memory manager failed to initialize the
- * memory object.
- */
-
-#define KERN_ALREADY_WAITING            30
-/* A thread is attempting to wait for an event for which
- * there is already a waiting thread.
- */
-
-#define KERN_DEFAULT_SET                31
-/* An attempt was made to destroy the default processor
- * set.
- */
-
-#define KERN_EXCEPTION_PROTECTED        32
-/* An attempt was made to fetch an exception port that is
- * protected, or to abort a thread while processing a
- * protected exception.
- */
-
-#define KERN_INVALID_LEDGER             33
-/* A ledger was required but not supplied.
- */
-
-#define KERN_INVALID_MEMORY_CONTROL     34
-/* The port was not a memory cache control port.
- */
-
-#define KERN_INVALID_SECURITY           35
-/* An argument supplied to assert security privilege
- * was not a host security port.
- */
-
-#define KERN_NOT_DEPRESSED              36
-/* thread_depress_abort was called on a thread which
- * was not currently depressed.
- */
-
-#define KERN_TERMINATED                 37
-/* Object has been terminated and is no longer available
- */
-
-#define KERN_LOCK_SET_DESTROYED         38
-/* Lock set has been destroyed and is no longer available.
- */
-
-#define KERN_LOCK_UNSTABLE              39
-/* The thread holding the lock terminated before releasing
- * the lock
- */
-
-#define KERN_LOCK_OWNED                 40
-/* The lock is already owned by another thread
- */
-
-#define KERN_LOCK_OWNED_SELF            41
-/* The lock is already owned by the calling thread
- */
-
-#define KERN_SEMAPHORE_DESTROYED        42
-/* Semaphore has been destroyed and is no longer available.
- */
-
-#define KERN_RPC_SERVER_TERMINATED      43
-/* Return from RPC indicating the target server was
- * terminated before it successfully replied
- */
-
-#define KERN_RPC_TERMINATE_ORPHAN       44
-/* Terminate an orphaned activation.
- */
-
-#define KERN_RPC_CONTINUE_ORPHAN        45
-/* Allow an orphaned activation to continue executing.
- */
-
-#define KERN_NOT_SUPPORTED              46
-/* Empty thread activation (No thread linked to it)
- */
-
-#define KERN_NODE_DOWN                  47
-/* Remote node down or inaccessible.
- */
-
-#define KERN_NOT_WAITING                48
-/* A signalled thread was not actually waiting. */
-
-#define KERN_OPERATION_TIMED_OUT        49
-/* Some thread-oriented operation (semaphore_wait) timed out
- */
-
-#define KERN_CODESIGN_ERROR             50
-/* During a page fault, indicates that the page was rejected
- * as a result of a signature check.
- */
-
-#define KERN_POLICY_STATIC              51
-/* The requested property cannot be changed at this time.
- */
-
-#define KERN_INSUFFICIENT_BUFFER_SIZE   52
-/* The provided buffer is of insufficient size for the requested data.
- */
-
-#define KERN_RETURN_MAX                 0x100
-/* Maximum return value allowable
- */
-
-#endif  /* _MACH_KERN_RETURN_H_ */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/kmod.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/kmod.h
deleted file mode 100644
index d23086b5..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/kmod.h
+++ /dev/null
@@ -1,180 +0,0 @@
-/*
- * Copyright (c) 2000-2007 Apple Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * NOTICE: This file was modified by SPARTA, Inc. in 2005 to introduce
- * support for mandatory and extensible security protections.  This notice
- * is included in support of clause 2.2 (b) of the Apple Public License,
- * Version 2.0.
- */
-
-#ifndef    _MACH_KMOD_H_
-#define    _MACH_KMOD_H_
-
-#include <mach/kern_return.h>
-#include <mach/mach_types.h>
-
-#include <sys/cdefs.h>
-
-__BEGIN_DECLS
-
-#if PRAGMA_MARK
-#pragma mark Basic macros & typedefs
-#endif
-/***********************************************************************
-* Basic macros & typedefs
-***********************************************************************/
-#define KMOD_MAX_NAME    64
-
-#define KMOD_RETURN_SUCCESS    KERN_SUCCESS
-#define KMOD_RETURN_FAILURE    KERN_FAILURE
-
-typedef int kmod_t;
-
-struct  kmod_info;
-typedef kern_return_t kmod_start_func_t(struct kmod_info * ki, void * data);
-typedef kern_return_t kmod_stop_func_t(struct kmod_info * ki, void * data);
-
-#if PRAGMA_MARK
-#pragma mark Structure definitions
-#endif
-/***********************************************************************
-* Structure definitions
-*
-* All structures must be #pragma pack(4).
-***********************************************************************/
-#pragma pack(push, 4)
-
-/* Run-time struct only; never saved to a file */
-typedef struct kmod_reference {
-	struct kmod_reference * next;
-	struct kmod_info      * info;
-} kmod_reference_t;
-
-/***********************************************************************
-* Warning: Any changes to the kmod_info structure affect the
-* KMOD_..._DECL macros below.
-***********************************************************************/
-
-/* The kmod_info_t structure is only safe to use inside the running
- * kernel.  If you need to work with a kmod_info_t structure outside
- * the kernel, please use the compatibility definitions below.
- */
-typedef struct kmod_info {
-	struct kmod_info  * next;
-	int32_t             info_version;       // version of this structure
-	uint32_t            id;
-	char                name[KMOD_MAX_NAME];
-	char                version[KMOD_MAX_NAME];
-	int32_t             reference_count;    // # linkage refs to this
-	kmod_reference_t  * reference_list;     // who this refs (links on)
-	vm_address_t        address;            // starting address
-	vm_size_t           size;               // total size
-	vm_size_t           hdr_size;           // unwired hdr size
-	kmod_start_func_t * start;
-	kmod_stop_func_t  * stop;
-} kmod_info_t;
-
-/* A compatibility definition of kmod_info_t for 32-bit kexts.
- */
-typedef struct kmod_info_32_v1 {
-	uint32_t            next_addr;
-	int32_t             info_version;
-	uint32_t            id;
-	uint8_t             name[KMOD_MAX_NAME];
-	uint8_t             version[KMOD_MAX_NAME];
-	int32_t             reference_count;
-	uint32_t            reference_list_addr;
-	uint32_t            address;
-	uint32_t            size;
-	uint32_t            hdr_size;
-	uint32_t            start_addr;
-	uint32_t            stop_addr;
-} kmod_info_32_v1_t;
-
-/* A compatibility definition of kmod_info_t for 64-bit kexts.
- */
-typedef struct kmod_info_64_v1 {
-	uint64_t            next_addr;
-	int32_t             info_version;
-	uint32_t            id;
-	uint8_t             name[KMOD_MAX_NAME];
-	uint8_t             version[KMOD_MAX_NAME];
-	int32_t             reference_count;
-	uint64_t            reference_list_addr;
-	uint64_t            address;
-	uint64_t            size;
-	uint64_t            hdr_size;
-	uint64_t            start_addr;
-	uint64_t            stop_addr;
-} kmod_info_64_v1_t;
-
-#pragma pack(pop)
-
-#if PRAGMA_MARK
-#pragma mark Kmod structure declaration macros
-#endif
-/***********************************************************************
-* Kmod structure declaration macros
-***********************************************************************/
-#define KMOD_INFO_NAME       kmod_info
-#define KMOD_INFO_VERSION    1
-
-#define KMOD_DECL(name, version)                                  \
-    static kmod_start_func_t name ## _module_start;               \
-    static kmod_stop_func_t  name ## _module_stop;                \
-    kmod_info_t KMOD_INFO_NAME = { 0, KMOD_INFO_VERSION, -1U,      \
-	               { #name }, { version }, -1, 0, 0, 0, 0,    \
-	                   name ## _module_start,                 \
-	                   name ## _module_stop };
-
-#define KMOD_EXPLICIT_DECL(name, version, start, stop)            \
-    kmod_info_t KMOD_INFO_NAME = { 0, KMOD_INFO_VERSION, -1U,      \
-	               { #name }, { version }, -1, 0, 0, 0, 0,    \
-	                   start, stop };
-
-#if PRAGMA_MARK
-#pragma mark Kernel private declarations
-#endif
-/***********************************************************************
-* Kernel private declarations.
-***********************************************************************/
-
-
-#if PRAGMA_MARK
-#pragma mark Obsolete kmod stuff
-#endif
-/***********************************************************************
-* These 3 should be dropped but they're referenced by MIG declarations.
-***********************************************************************/
-typedef void * kmod_args_t;
-typedef int kmod_control_flavor_t;
-typedef kmod_info_t * kmod_info_array_t;
-
-__END_DECLS
-
-#endif    /* _MACH_KMOD_H_ */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/lock_set.defs b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/lock_set.defs
deleted file mode 100644
index d4cb9abb..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/lock_set.defs
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- * 
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- * 
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- * 
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- * 
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_COPYRIGHT@
- * 
- */
-/*
- *	File: mach/lock_set.defs
- *	Author: Joseph CaraDonna
- *
- *	Exported kernel calls	
- *
- */
-
-subsystem
-#if	KERNEL_SERVER
-	KernelServer
-#endif	/* KERNEL_SERVER */
-			lock_set 617000;
-
-#include <mach/std_types.defs>
-#include <mach/mach_types.defs>
-
-/*
- * OBSOLETE interfaces
- * a lock_set_t is created and destroyed through the task object.
- *      lock_set_create(task,&lock_set_t,...);
- *      lock_set_destroy(task,lock_set_t);
- */
-
-/*
- * OBSOLETE interfaces
- */
-routine lock_acquire(
-		lock_set	: lock_set_t;
-		lock_id		: int);
-
-routine lock_release(
-		lock_set	: lock_set_t;
-		lock_id		: int);
-
-routine lock_try(
-		lock_set	: lock_set_t;
-		lock_id		: int);
-
-routine lock_make_stable(
-		lock_set	: lock_set_t;
-		lock_id		: int);
-
-routine lock_handoff(
-		lock_set	: lock_set_t;
-		lock_id		: int);
-
-routine lock_handoff_accept(
-		lock_set	: lock_set_t;
-		lock_id		: int);
-
-/* vim: set ft=c : */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/lock_set.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/lock_set.h
deleted file mode 100644
index e4dcf8a8..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/lock_set.h
+++ /dev/null
@@ -1,350 +0,0 @@
-#ifndef	_lock_set_user_
-#define	_lock_set_user_
-
-/* Module lock_set */
-
-#include <string.h>
-#include <mach/ndr.h>
-#include <mach/boolean.h>
-#include <mach/kern_return.h>
-#include <mach/notify.h>
-#include <mach/mach_types.h>
-#include <mach/message.h>
-#include <mach/mig_errors.h>
-#include <mach/port.h>
-	
-/* BEGIN MIG_STRNCPY_ZEROFILL CODE */
-
-#if defined(__has_include)
-#if __has_include(<mach/mig_strncpy_zerofill_support.h>)
-#ifndef USING_MIG_STRNCPY_ZEROFILL
-#define USING_MIG_STRNCPY_ZEROFILL
-#endif
-#ifndef __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
-#define __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
-#ifdef __cplusplus
-extern "C" {
-#endif
-	extern int mig_strncpy_zerofill(char *dest, const char *src, int len) __attribute__((weak_import));
-#ifdef __cplusplus
-}
-#endif
-#endif /* __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__ */
-#endif /* __has_include(<mach/mig_strncpy_zerofill_support.h>) */
-#endif /* __has_include */
-	
-/* END MIG_STRNCPY_ZEROFILL CODE */
-
-
-#ifdef AUTOTEST
-#ifndef FUNCTION_PTR_T
-#define FUNCTION_PTR_T
-typedef void (*function_ptr_t)(mach_port_t, char *, mach_msg_type_number_t);
-typedef struct {
-        char            *name;
-        function_ptr_t  function;
-} function_table_entry;
-typedef function_table_entry   *function_table_t;
-#endif /* FUNCTION_PTR_T */
-#endif /* AUTOTEST */
-
-#ifndef	lock_set_MSG_COUNT
-#define	lock_set_MSG_COUNT	6
-#endif	/* lock_set_MSG_COUNT */
-
-#include <mach/std_types.h>
-#include <mach/mig.h>
-#include <mach/mig.h>
-#include <mach/mach_types.h>
-
-#ifdef __BeforeMigUserHeader
-__BeforeMigUserHeader
-#endif /* __BeforeMigUserHeader */
-
-#include <sys/cdefs.h>
-__BEGIN_DECLS
-
-
-/* Routine lock_acquire */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t lock_acquire
-(
-	lock_set_t lock_set,
-	int lock_id
-);
-
-/* Routine lock_release */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t lock_release
-(
-	lock_set_t lock_set,
-	int lock_id
-);
-
-/* Routine lock_try */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t lock_try
-(
-	lock_set_t lock_set,
-	int lock_id
-);
-
-/* Routine lock_make_stable */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t lock_make_stable
-(
-	lock_set_t lock_set,
-	int lock_id
-);
-
-/* Routine lock_handoff */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t lock_handoff
-(
-	lock_set_t lock_set,
-	int lock_id
-);
-
-/* Routine lock_handoff_accept */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t lock_handoff_accept
-(
-	lock_set_t lock_set,
-	int lock_id
-);
-
-__END_DECLS
-
-/********************** Caution **************************/
-/* The following data types should be used to calculate  */
-/* maximum message sizes only. The actual message may be */
-/* smaller, and the position of the arguments within the */
-/* message layout may vary from what is presented here.  */
-/* For example, if any of the arguments are variable-    */
-/* sized, and less than the maximum is sent, the data    */
-/* will be packed tight in the actual message to reduce  */
-/* the presence of holes.                                */
-/********************** Caution **************************/
-
-/* typedefs for all requests */
-
-#ifndef __Request__lock_set_subsystem__defined
-#define __Request__lock_set_subsystem__defined
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		int lock_id;
-	} __Request__lock_acquire_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		int lock_id;
-	} __Request__lock_release_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		int lock_id;
-	} __Request__lock_try_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		int lock_id;
-	} __Request__lock_make_stable_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		int lock_id;
-	} __Request__lock_handoff_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		int lock_id;
-	} __Request__lock_handoff_accept_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-#endif /* !__Request__lock_set_subsystem__defined */
-
-/* union of all requests */
-
-#ifndef __RequestUnion__lock_set_subsystem__defined
-#define __RequestUnion__lock_set_subsystem__defined
-union __RequestUnion__lock_set_subsystem {
-	__Request__lock_acquire_t Request_lock_acquire;
-	__Request__lock_release_t Request_lock_release;
-	__Request__lock_try_t Request_lock_try;
-	__Request__lock_make_stable_t Request_lock_make_stable;
-	__Request__lock_handoff_t Request_lock_handoff;
-	__Request__lock_handoff_accept_t Request_lock_handoff_accept;
-};
-#endif /* !__RequestUnion__lock_set_subsystem__defined */
-/* typedefs for all replies */
-
-#ifndef __Reply__lock_set_subsystem__defined
-#define __Reply__lock_set_subsystem__defined
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__lock_acquire_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__lock_release_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__lock_try_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__lock_make_stable_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__lock_handoff_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__lock_handoff_accept_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-#endif /* !__Reply__lock_set_subsystem__defined */
-
-/* union of all replies */
-
-#ifndef __ReplyUnion__lock_set_subsystem__defined
-#define __ReplyUnion__lock_set_subsystem__defined
-union __ReplyUnion__lock_set_subsystem {
-	__Reply__lock_acquire_t Reply_lock_acquire;
-	__Reply__lock_release_t Reply_lock_release;
-	__Reply__lock_try_t Reply_lock_try;
-	__Reply__lock_make_stable_t Reply_lock_make_stable;
-	__Reply__lock_handoff_t Reply_lock_handoff;
-	__Reply__lock_handoff_accept_t Reply_lock_handoff_accept;
-};
-#endif /* !__RequestUnion__lock_set_subsystem__defined */
-
-#ifndef subsystem_to_name_map_lock_set
-#define subsystem_to_name_map_lock_set \
-    { "lock_acquire", 617000 },\
-    { "lock_release", 617001 },\
-    { "lock_try", 617002 },\
-    { "lock_make_stable", 617003 },\
-    { "lock_handoff", 617004 },\
-    { "lock_handoff_accept", 617005 }
-#endif
-
-#ifdef __AfterMigUserHeader
-__AfterMigUserHeader
-#endif /* __AfterMigUserHeader */
-
-#endif	 /* _lock_set_user_ */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/mach.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/mach.h
deleted file mode 100644
index 9ebf5c8c..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/mach.h
+++ /dev/null
@@ -1,245 +0,0 @@
-/*
- * Copyright (c) 1999-2014 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * Mach Operating System
- * Copyright (c) 1991,1990,1989 Carnegie Mellon University
- * All Rights Reserved.
- *
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- */
-
-/*
- *  Includes all the types that a normal user
- *  of Mach programs should need
- */
-
-#ifndef _MACH_H_
-#define _MACH_H_
-
-#define __MACH30__
-#define MACH_IPC_FLAVOR UNTYPED
-
-#include <mach/std_types.h>
-#include <mach/mach_types.h>
-#include <mach/mach_interface.h>
-#include <mach/mach_port.h>
-#include <mach/mach_init.h>
-#include <mach/mach_host.h>
-#include <mach/thread_switch.h>
-
-#include <mach/rpc.h>           /* for compatibility only */
-#include <mach/mig.h>
-
-#include <mach/mig_errors.h>
-#include <mach/mach_error.h>
-
-#include <sys/cdefs.h>
-
-__BEGIN_DECLS
-/*
- * Standard prototypes
- */
-extern void                     panic_init(mach_port_t);
-extern void                     panic(const char *, ...);
-
-extern void                     safe_gets(char *,
-    char *,
-    int);
-
-extern void                     slot_name(cpu_type_t,
-    cpu_subtype_t,
-    char **,
-    char **);
-
-extern void                     mig_reply_setup(mach_msg_header_t *,
-    mach_msg_header_t *);
-
-__WATCHOS_PROHIBITED __TVOS_PROHIBITED
-extern void                     mach_msg_destroy(mach_msg_header_t *);
-
-__WATCHOS_PROHIBITED __TVOS_PROHIBITED
-extern mach_msg_return_t        mach_msg_receive(mach_msg_header_t *);
-
-__WATCHOS_PROHIBITED __TVOS_PROHIBITED
-extern mach_msg_return_t        mach_msg_send(mach_msg_header_t *);
-
-__WATCHOS_PROHIBITED __TVOS_PROHIBITED
-extern mach_msg_return_t        mach_msg_server_once(boolean_t (*)
-    (mach_msg_header_t *,
-    mach_msg_header_t *),
-    mach_msg_size_t,
-    mach_port_t,
-    mach_msg_options_t);
-
-__WATCHOS_PROHIBITED __TVOS_PROHIBITED
-extern mach_msg_return_t        mach_msg_server(boolean_t (*)
-    (mach_msg_header_t *,
-    mach_msg_header_t *),
-    mach_msg_size_t,
-    mach_port_t,
-    mach_msg_options_t);
-
-__WATCHOS_PROHIBITED __TVOS_PROHIBITED
-extern mach_msg_return_t        mach_msg_server_importance(boolean_t (*)
-    (mach_msg_header_t *,
-    mach_msg_header_t *),
-    mach_msg_size_t,
-    mach_port_t,
-    mach_msg_options_t);
-
-/*
- * Prototypes for compatibility
- */
-extern kern_return_t    clock_get_res(mach_port_t,
-    clock_res_t *);
-extern kern_return_t    clock_set_res(mach_port_t,
-    clock_res_t);
-
-extern kern_return_t    clock_sleep(mach_port_t,
-    int,
-    mach_timespec_t,
-    mach_timespec_t *);
-
-/*!
- * @group voucher_mach_msg Prototypes
- */
-
-#define VOUCHER_MACH_MSG_API_VERSION 20140205
-
-/*!
- * @typedef voucher_mach_msg_state_t
- *
- * @abstract
- * Opaque object encapsulating state changed by voucher_mach_msg_adopt().
- */
-typedef struct voucher_mach_msg_state_s *voucher_mach_msg_state_t;
-
-/*!
- * @const VOUCHER_MACH_MSG_STATE_UNCHANGED
- *
- * @discussion
- * Constant indicating no state change occurred.
- */
-#define VOUCHER_MACH_MSG_STATE_UNCHANGED ((voucher_mach_msg_state_t)~0ul)
-
-/*!
- * @function voucher_mach_msg_set
- *
- * @abstract
- * Change specified message header to contain current mach voucher with a
- * COPY_SEND disposition.
- * Does not change message if it already has non-zero MACH_MSGH_BITS_VOUCHER.
- *
- * @discussion
- * Borrows reference to current thread voucher so message should be sent
- * immediately (without intervening calls that might change that voucher).
- *
- * @param msg
- * The message to modify.
- *
- * @result
- * True if header was changed.
- */
-extern boolean_t voucher_mach_msg_set(mach_msg_header_t *msg);
-
-/*!
- * @function voucher_mach_msg_clear
- *
- * @abstract
- * Removes changes made to specified message header by voucher_mach_msg_set()
- * and any mach_msg() send operations (successful or not).
- * If the message is not needed further, mach_msg_destroy() should be called
- * instead.
- *
- * @discussion
- * Not intended to be called if voucher_mach_msg_set() returned false.
- * Releases reference to message mach voucher if an extra reference was
- * acquired due to an unsuccessful send operation (pseudo-receive).
- *
- * @param msg
- * The message to modify.
- */
-extern void voucher_mach_msg_clear(mach_msg_header_t *msg);
-
-/*!
- * @function voucher_mach_msg_adopt
- *
- * @abstract
- * Adopt the voucher contained in the specified message on the current thread
- * and return the previous thread voucher state.
- *
- * @discussion
- * Ownership of the mach voucher in the message is transferred to the current
- * thread and the message header voucher fields are cleared.
- *
- * @param msg
- * The message to query and modify.
- *
- * @result
- * The previous thread voucher state or VOUCHER_MACH_MSG_STATE_UNCHANGED if no
- * state change occurred.
- */
-extern voucher_mach_msg_state_t voucher_mach_msg_adopt(mach_msg_header_t *msg);
-
-/*!
- * @function voucher_mach_msg_revert
- *
- * @abstract
- * Restore thread voucher state previously modified by voucher_mach_msg_adopt().
- *
- * @discussion
- * Current thread voucher reference is released.
- * No change to thread voucher state if passed VOUCHER_MACH_MSG_STATE_UNCHANGED.
- *
- * @param state
- * The thread voucher state to restore.
- */
-
-extern void voucher_mach_msg_revert(voucher_mach_msg_state_t state);
-
-__END_DECLS
-
-#endif  /* _MACH_H_ */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/mach_error.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/mach_error.h
deleted file mode 100644
index 538b5cb1..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/mach_error.h
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * Copyright (c) 1999 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * Mach Operating System
- * Copyright (c) 1991,1990,1989 Carnegie Mellon University
- * All Rights Reserved.
- *
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie the
- * rights to redistribute these changes.
- */
-
-/*
- *	File:	mach_error.h
- *	Author:	Douglas Orr, Carnegie Mellon University
- *	Date:	Mar. 1988
- *
- *	Definitions of routines in mach_error.c
- */
-
-#ifndef _MACH_ERROR_
-#define _MACH_ERROR_    1
-
-#include <mach/error.h>
-
-#include <sys/cdefs.h>
-
-__BEGIN_DECLS
-char            *mach_error_string(
-/*
- *	Returns a string appropriate to the error argument given
- */
-	mach_error_t error_value
-	);
-
-void            mach_error(
-/*
- *	Prints an appropriate message on the standard error stream
- */
-	const char      *str,
-	mach_error_t    error_value
-	);
-
-char            *mach_error_type(
-/*
- *	Returns a string with the error system, subsystem and code
- */
-	mach_error_t    error_value
-	);
-__END_DECLS
-
-#endif  /* _MACH_ERROR_ */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/mach_exc.defs b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/mach_exc.defs
deleted file mode 100644
index 5ce6427b..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/mach_exc.defs
+++ /dev/null
@@ -1,133 +0,0 @@
-/*
- * Copyright (c) 2006 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- * 
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- * 
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- * 
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- * 
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-/* 
- * Mach Operating System
- * Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University
- * All Rights Reserved.
- * 
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- * 
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- * 
- * Carnegie Mellon requests users of this software to return to
- * 
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- * 
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- */
-/*
- */
-/*
- * Abstract:
- *	MiG definitions file for Mach exception interface.
- */
-
-subsystem
-#if	KERNEL_USER
-	  KernelUser
-#endif
-#if	KERNEL_SERVER
-	  KernelServer
-#endif	/* KERNEL_SERVER */
-
-		     mach_exc 2405;
-
-#include <mach/std_types.defs>
-#include <mach/mach_types.defs>
-
-ServerPrefix catch_;
-
-type mach_exception_data_t	= array[*:2] of int64_t;
-type exception_type_t		= int;
-
-routine		mach_exception_raise(
-			exception_port	: mach_port_t;
-			thread		: mach_port_t;
-			task		: mach_port_t;
-			exception	: exception_type_t;
-			code		: mach_exception_data_t
-#if MACH_EXC_SERVER_SECTOKEN
- ;
- ServerSecToken stoken	: security_token_t
-#endif
-#if MACH_EXC_SERVER_AUDITTOKEN
- ;
- ServerAuditToken atoken: audit_token_t
-#endif
-			);
-
-routine		mach_exception_raise_state(
-			exception_port	: mach_port_t;
-			exception	: exception_type_t;
-			code		: mach_exception_data_t, const;
-		  inout flavor		: int;
-			old_state	: thread_state_t, const;
-		    out new_state	: thread_state_t
-#if MACH_EXC_SERVER_SECTOKEN
- ;
- ServerSecToken stoken	: security_token_t
-#endif
-#if MACH_EXC_SERVER_AUDITTOKEN
- ;
- ServerAuditToken atoken: audit_token_t
-#endif
-			);
-
-routine		mach_exception_raise_state_identity(
-			exception_port  : mach_port_t;
-			thread          : mach_port_t;
-			task            : mach_port_t;
-			exception       : exception_type_t;
-			code            : mach_exception_data_t;
-		  inout flavor          : int;
-			old_state       : thread_state_t;
-		    out new_state       : thread_state_t
-#if MACH_EXC_SERVER_SECTOKEN
- ;
- ServerSecToken stoken	: security_token_t
-#endif
-#if MACH_EXC_SERVER_AUDITTOKEN
- ;
- ServerAuditToken atoken: audit_token_t
-#endif
-			);
-
-/* vim: set ft=c : */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/mach_host.defs b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/mach_host.defs
deleted file mode 100644
index a22918ef..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/mach_host.defs
+++ /dev/null
@@ -1,357 +0,0 @@
-/*
- * Copyright (c) 2000-2009 Apple Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- * 
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- * 
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- * 
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- * 
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-/* 
- * Mach Operating System
- * Copyright (c) 1991,1990,1989 Carnegie Mellon University
- * All Rights Reserved.
- * 
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- * 
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- * 
- * Carnegie Mellon requests users of this software to return to
- * 
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- * 
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- */
-/*
- */
-
-/*
- * File:	mach/mach_host.defs
- *
- * Abstract:
- *	Mach host operations support.  Includes processor allocation and
- *	control.  
- */
-
-subsystem
-#if	KERNEL_SERVER
-	  KernelServer
-#endif	/* KERNEL_SERVER */
-		       mach_host 200;
-
-/*
- *	Basic types
- */
-
-#include <mach/std_types.defs>
-#include <mach/mach_types.defs>
-#include <mach/clock_types.defs>
-#include <mach_debug/mach_debug_types.defs>
-
-/*
- * References to host objects are returned by:
- *	mach_host_self() - trap
- */
-
-/*
- *	Return information about this host.
- */
-routine host_info(
-		host		: host_t;
-		flavor		: host_flavor_t;
-	out	host_info_out	: host_info_t, CountInOut);
-
-/*
- *	Get string describing current kernel version.
- */
-routine	host_kernel_version(
-		host		: host_t;
-	out	kernel_version	: kernel_version_t);
-
-/*
- *      Get host page size
- *	(compatibility for running old libraries on new kernels -
- *	host_page_size() is now a library routine based on constants)
- */
-routine _host_page_size(
-		host		: host_t;
-	out	out_page_size	: vm_size_t);
-
-/*
- *	Allow pagers to create named entries that point to un-mapped
- *	abstract memory object.  The named entries are generally mappable
- *	and can be subsetted through the mach_make_memory_entry call
- */
-routine mach_memory_object_memory_entry(
-		host		:host_t;
-		internal	:boolean_t;
-		size		:vm_size_t;
-		permission	:vm_prot_t;
-		pager		:memory_object_t;
-	out	entry_handle	:mach_port_move_send_t);
-
-
-/*
- *      Get processor info for all the processors on this host.
- *	The returned data is an OOL array of processor info.
- */
-routine host_processor_info(
-		host			: host_t;
-                flavor          	: processor_flavor_t;
-	out	out_processor_count 	: natural_t;
-        out     out_processor_info  	: processor_info_array_t);
-
-/*
- * 	Return host IO master access port
- */
-routine host_get_io_master(
-                host            : host_t;
-        out     io_master       : io_master_t);
-
-/*
- *	Get service port for a processor set.
- *	Available to all.
- */
-routine host_get_clock_service(
-		host		: host_t;
-		clock_id	: clock_id_t;
-	out	clock_serv	: clock_serv_t);
-
-/*
- * kernel module interface (obsolete as of SnowLeopard)
- * see mach/kmod.h
- */
-/* kmod_ MIG calls now return KERN_NOT_SUPPORTED on PPC/i386/x86_64. */
-routine	kmod_get_info(
-		host		: host_t;
-	out	modules		: kmod_args_t);
-
-
-skip; /* was host_zone_info */
-
-/*
- *	Returns information about the global VP table.
- *      Only supported in MACH_VM_DEBUG kernels,
- *      otherwise returns KERN_FAILURE.
- */
-routine host_virtual_physical_table_info(
-		host		: host_t;
-	out	info		: hash_info_bucket_array_t,
-					Dealloc);
-
-
-skip; /* was host_ipc_hash_info */
-skip; /* was enable_bluebox */
-skip; /* was disable_bluebox */
-
-/*
- * JMM - Keep processor_set related items at the end for easy
- * removal.
- */
-/*
- *	Get default processor set for host.
- */
-routine processor_set_default(
-		host		: host_t;
-	out	default_set	: processor_set_name_t);
-
-/*
- *	Create new processor set.  Returns real port for manipulations,
- *	and name port for obtaining information.
- */
-routine processor_set_create(
-		host		: host_t;
-	out	new_set		: processor_set_t;
-	out	new_name	: processor_set_name_t);
-
-/*
- * 	Temporary interfaces for conversion to 64 bit data path 
- */
-
-routine mach_memory_object_memory_entry_64(
-		host		:host_t;
-		internal	:boolean_t;
-		size		:memory_object_size_t;
-		permission	:vm_prot_t;
-		pager		:memory_object_t;
-	out	entry_handle	:mach_port_move_send_t);
-
-/*
- *	Return statistics from this host.
- */
-routine
-#ifdef KERNEL_SERVER
-host_statistics_from_user(
-#else
-host_statistics(
-#endif
-		host_priv	: host_t;
-		flavor		: host_flavor_t;
-	out	host_info_out	: host_info_t, CountInOut);
-
-routine host_request_notification(
-		host		: host_t;
-		notify_type	: host_flavor_t;
-		notify_port	: mach_port_make_send_once_t);
-
-routine host_lockgroup_info(
-		host		: host_t;
-	out	lockgroup_info	: lockgroup_info_array_t,
-					Dealloc);
-
-/*
- *	Return 64-bit statistics from this host.
- */
-routine
-#ifdef KERNEL_SERVER
-host_statistics64_from_user(
-#else
-host_statistics64(
-#endif
-		host_priv	: host_t;
-		flavor		: host_flavor_t;
-	out	host_info64_out	: host_info64_t, CountInOut);
-
-/*
- *	Returns information about the memory allocation zones.
- *      Data returned is compatible with various caller and kernel
- *	address space sizes.
- */
-routine mach_zone_info(
-		host		: host_priv_t;
-	out	names		: mach_zone_name_array_t,
-					Dealloc;
-	out	info		: mach_zone_info_array_t,
-					Dealloc);
-
-skip;
-
-/*
- *	Create a new voucher by running a series of commands against
- *	<key, previous-voucher> pairs of resource attributes.
- */
-#if !KERNEL && !LIBSYSCALL_INTERFACE
-routine _kernelrpc_host_create_mach_voucher(
-#else
-routine host_create_mach_voucher(
-#endif
-		host		: host_t;
-		recipes		: mach_voucher_attr_raw_recipe_array_t;
-	out	voucher		: ipc_voucher_t);
-
-/*
- *	Register a resource manager with the kernel.  A new key is selected.
- */
-routine host_register_mach_voucher_attr_manager(
-		host		: host_t;
-		attr_manager	: mach_voucher_attr_manager_t;
-		default_value	: mach_voucher_attr_value_handle_t;
-	out	new_key		: mach_voucher_attr_key_t;
-	out	new_attr_control: ipc_voucher_attr_control_t);
-
-/*
- *	Register a resource manager (with a well-known key value) with the kernel.
- */
-routine host_register_well_known_mach_voucher_attr_manager(
-		host		: host_t;
-		attr_manager	: mach_voucher_attr_manager_t;
-		default_value	: mach_voucher_attr_value_handle_t;
-		key		: mach_voucher_attr_key_t;
-	out	new_attr_control: ipc_voucher_attr_control_t);
-
-
-/*
- * Update the global ATM diagnostic flag, readable from the commpage
- */
-routine host_set_atm_diagnostic_flag(
-		host		: host_t;
-	in	diagnostic_flag : uint32_t);
-
-#if !KERNEL && LIBSYSCALL_INTERFACE
-routine host_get_atm_diagnostic_flag(
-		host		: host_t;
-	out	diagnostic_flag : uint32_t);
-#else
-skip;
-#endif
-
-routine mach_memory_info(
-		host		: host_priv_t;
-	out	names		: mach_zone_name_array_t,
-					Dealloc;
-	out	info		: mach_zone_info_array_t,
-					Dealloc;
-	out	memory_info	: mach_memory_info_array_t,
-					Dealloc);
-
-/*
- * Update the global multiuser flags, readable from the commpage
- */
-routine host_set_multiuser_config_flags(
-		host_priv		: host_priv_t;
-	in	multiuser_flags	: uint32_t);
-
-#if !KERNEL && LIBSYSCALL_INTERFACE
-routine host_get_multiuser_config_flags(
-		host			: host_t;
-	out	multiuser_flags	: uint32_t);
-#else
-skip;
-#endif // !KERNEL && LIBSYSCALL_INTERFACE
-
-#if !KERNEL && LIBSYSCALL_INTERFACE
-routine host_check_multiuser_mode(
-		host			: host_t;
-	out	multiuser_mode	: uint32_t);
-#else
-skip;
-#endif // !KERNEL && LIBSYSCALL_INTERFACE
-
-/*
- * Returns information about a specific zone.
- * The zone name is passed in via the argument name,
- * info returns the zone info.
- */
-routine mach_zone_info_for_zone(
-		host		: host_priv_t;
-		name		: mach_zone_name_t;
-	out	info		: mach_zone_info_t);
-
-skip;
-
-skip;
-
-skip;
-
-/* vim: set ft=c : */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/mach_host.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/mach_host.h
deleted file mode 100644
index 41c68050..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/mach_host.h
+++ /dev/null
@@ -1,1295 +0,0 @@
-#ifndef	_mach_host_user_
-#define	_mach_host_user_
-
-/* Module mach_host */
-
-#include <string.h>
-#include <mach/ndr.h>
-#include <mach/boolean.h>
-#include <mach/kern_return.h>
-#include <mach/notify.h>
-#include <mach/mach_types.h>
-#include <mach/message.h>
-#include <mach/mig_errors.h>
-#include <mach/port.h>
-	
-/* BEGIN MIG_STRNCPY_ZEROFILL CODE */
-
-#if defined(__has_include)
-#if __has_include(<mach/mig_strncpy_zerofill_support.h>)
-#ifndef USING_MIG_STRNCPY_ZEROFILL
-#define USING_MIG_STRNCPY_ZEROFILL
-#endif
-#ifndef __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
-#define __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
-#ifdef __cplusplus
-extern "C" {
-#endif
-	extern int mig_strncpy_zerofill(char *dest, const char *src, int len) __attribute__((weak_import));
-#ifdef __cplusplus
-}
-#endif
-#endif /* __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__ */
-#endif /* __has_include(<mach/mig_strncpy_zerofill_support.h>) */
-#endif /* __has_include */
-	
-/* END MIG_STRNCPY_ZEROFILL CODE */
-
-
-#ifdef AUTOTEST
-#ifndef FUNCTION_PTR_T
-#define FUNCTION_PTR_T
-typedef void (*function_ptr_t)(mach_port_t, char *, mach_msg_type_number_t);
-typedef struct {
-        char            *name;
-        function_ptr_t  function;
-} function_table_entry;
-typedef function_table_entry   *function_table_t;
-#endif /* FUNCTION_PTR_T */
-#endif /* AUTOTEST */
-
-#ifndef	mach_host_MSG_COUNT
-#define	mach_host_MSG_COUNT	35
-#endif	/* mach_host_MSG_COUNT */
-
-#include <mach/std_types.h>
-#include <mach/mig.h>
-#include <mach/mig.h>
-#include <mach/mach_types.h>
-#include <mach/mach_types.h>
-#include <mach_debug/mach_debug_types.h>
-#include <mach/mach_init.h>
-
-#ifdef __BeforeMigUserHeader
-__BeforeMigUserHeader
-#endif /* __BeforeMigUserHeader */
-
-#include <sys/cdefs.h>
-__BEGIN_DECLS
-
-
-/* Routine host_info */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
-kern_return_t host_info
-(
-	host_t host,
-	host_flavor_t flavor,
-	host_info_t host_info_out,
-	mach_msg_type_number_t *host_info_outCnt
-);
-
-/* Routine host_kernel_version */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t host_kernel_version
-(
-	host_t host,
-	kernel_version_t kernel_version
-);
-
-/* Routine _host_page_size */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t _host_page_size
-(
-	host_t host,
-	vm_size_t *out_page_size
-);
-
-/* Routine mach_memory_object_memory_entry */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_memory_object_memory_entry
-(
-	host_t host,
-	boolean_t internal,
-	vm_size_t size,
-	vm_prot_t permission,
-	memory_object_t pager,
-	mach_port_t *entry_handle
-);
-
-/* Routine host_processor_info */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t host_processor_info
-(
-	host_t host,
-	processor_flavor_t flavor,
-	natural_t *out_processor_count,
-	processor_info_array_t *out_processor_info,
-	mach_msg_type_number_t *out_processor_infoCnt
-);
-
-/* Routine host_get_io_master */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t host_get_io_master
-(
-	host_t host,
-	io_master_t *io_master
-);
-
-/* Routine host_get_clock_service */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t host_get_clock_service
-(
-	host_t host,
-	clock_id_t clock_id,
-	clock_serv_t *clock_serv
-);
-
-/* Routine kmod_get_info */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t kmod_get_info
-(
-	host_t host,
-	kmod_args_t *modules,
-	mach_msg_type_number_t *modulesCnt
-);
-
-/* Routine host_virtual_physical_table_info */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t host_virtual_physical_table_info
-(
-	host_t host,
-	hash_info_bucket_array_t *info,
-	mach_msg_type_number_t *infoCnt
-);
-
-/* Routine processor_set_default */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t processor_set_default
-(
-	host_t host,
-	processor_set_name_t *default_set
-);
-
-/* Routine processor_set_create */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t processor_set_create
-(
-	host_t host,
-	processor_set_t *new_set,
-	processor_set_name_t *new_name
-);
-
-/* Routine mach_memory_object_memory_entry_64 */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_memory_object_memory_entry_64
-(
-	host_t host,
-	boolean_t internal,
-	memory_object_size_t size,
-	vm_prot_t permission,
-	memory_object_t pager,
-	mach_port_t *entry_handle
-);
-
-/* Routine host_statistics */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t host_statistics
-(
-	host_t host_priv,
-	host_flavor_t flavor,
-	host_info_t host_info_out,
-	mach_msg_type_number_t *host_info_outCnt
-);
-
-/* Routine host_request_notification */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
-kern_return_t host_request_notification
-(
-	host_t host,
-	host_flavor_t notify_type,
-	mach_port_t notify_port
-);
-
-/* Routine host_lockgroup_info */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t host_lockgroup_info
-(
-	host_t host,
-	lockgroup_info_array_t *lockgroup_info,
-	mach_msg_type_number_t *lockgroup_infoCnt
-);
-
-/* Routine host_statistics64 */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t host_statistics64
-(
-	host_t host_priv,
-	host_flavor_t flavor,
-	host_info64_t host_info64_out,
-	mach_msg_type_number_t *host_info64_outCnt
-);
-
-/* Routine mach_zone_info */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_zone_info
-(
-	host_priv_t host,
-	mach_zone_name_array_t *names,
-	mach_msg_type_number_t *namesCnt,
-	mach_zone_info_array_t *info,
-	mach_msg_type_number_t *infoCnt
-);
-
-/* Routine host_create_mach_voucher */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
-kern_return_t host_create_mach_voucher
-(
-	host_t host,
-	mach_voucher_attr_raw_recipe_array_t recipes,
-	mach_msg_type_number_t recipesCnt,
-	ipc_voucher_t *voucher
-);
-
-/* Routine host_register_mach_voucher_attr_manager */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
-kern_return_t host_register_mach_voucher_attr_manager
-(
-	host_t host,
-	mach_voucher_attr_manager_t attr_manager,
-	mach_voucher_attr_value_handle_t default_value,
-	mach_voucher_attr_key_t *new_key,
-	ipc_voucher_attr_control_t *new_attr_control
-);
-
-/* Routine host_register_well_known_mach_voucher_attr_manager */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
-kern_return_t host_register_well_known_mach_voucher_attr_manager
-(
-	host_t host,
-	mach_voucher_attr_manager_t attr_manager,
-	mach_voucher_attr_value_handle_t default_value,
-	mach_voucher_attr_key_t key,
-	ipc_voucher_attr_control_t *new_attr_control
-);
-
-/* Routine host_set_atm_diagnostic_flag */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
-kern_return_t host_set_atm_diagnostic_flag
-(
-	host_t host,
-	uint32_t diagnostic_flag
-);
-
-/* Routine host_get_atm_diagnostic_flag */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
-kern_return_t host_get_atm_diagnostic_flag
-(
-	host_t host,
-	uint32_t *diagnostic_flag
-);
-
-/* Routine mach_memory_info */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_memory_info
-(
-	host_priv_t host,
-	mach_zone_name_array_t *names,
-	mach_msg_type_number_t *namesCnt,
-	mach_zone_info_array_t *info,
-	mach_msg_type_number_t *infoCnt,
-	mach_memory_info_array_t *memory_info,
-	mach_msg_type_number_t *memory_infoCnt
-);
-
-/* Routine host_set_multiuser_config_flags */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t host_set_multiuser_config_flags
-(
-	host_priv_t host_priv,
-	uint32_t multiuser_flags
-);
-
-/* Routine host_get_multiuser_config_flags */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t host_get_multiuser_config_flags
-(
-	host_t host,
-	uint32_t *multiuser_flags
-);
-
-/* Routine host_check_multiuser_mode */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t host_check_multiuser_mode
-(
-	host_t host,
-	uint32_t *multiuser_mode
-);
-
-/* Routine mach_zone_info_for_zone */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_zone_info_for_zone
-(
-	host_priv_t host,
-	mach_zone_name_t name,
-	mach_zone_info_t *info
-);
-
-__END_DECLS
-
-/********************** Caution **************************/
-/* The following data types should be used to calculate  */
-/* maximum message sizes only. The actual message may be */
-/* smaller, and the position of the arguments within the */
-/* message layout may vary from what is presented here.  */
-/* For example, if any of the arguments are variable-    */
-/* sized, and less than the maximum is sent, the data    */
-/* will be packed tight in the actual message to reduce  */
-/* the presence of holes.                                */
-/********************** Caution **************************/
-
-/* typedefs for all requests */
-
-#ifndef __Request__mach_host_subsystem__defined
-#define __Request__mach_host_subsystem__defined
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		host_flavor_t flavor;
-		mach_msg_type_number_t host_info_outCnt;
-	} __Request__host_info_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__host_kernel_version_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request___host_page_size_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t pager;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		boolean_t internal;
-		vm_size_t size;
-		vm_prot_t permission;
-	} __Request__mach_memory_object_memory_entry_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		processor_flavor_t flavor;
-	} __Request__host_processor_info_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__host_get_io_master_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		clock_id_t clock_id;
-	} __Request__host_get_clock_service_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__kmod_get_info_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__host_virtual_physical_table_info_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__processor_set_default_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__processor_set_create_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t pager;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		boolean_t internal;
-		memory_object_size_t size;
-		vm_prot_t permission;
-	} __Request__mach_memory_object_memory_entry_64_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		host_flavor_t flavor;
-		mach_msg_type_number_t host_info_outCnt;
-	} __Request__host_statistics_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t notify_port;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		host_flavor_t notify_type;
-	} __Request__host_request_notification_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__host_lockgroup_info_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		host_flavor_t flavor;
-		mach_msg_type_number_t host_info64_outCnt;
-	} __Request__host_statistics64_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__mach_zone_info_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		mach_msg_type_number_t recipesCnt;
-		uint8_t recipes[5120];
-	} __Request__host_create_mach_voucher_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t attr_manager;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		mach_voucher_attr_value_handle_t default_value;
-	} __Request__host_register_mach_voucher_attr_manager_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t attr_manager;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		mach_voucher_attr_value_handle_t default_value;
-		mach_voucher_attr_key_t key;
-	} __Request__host_register_well_known_mach_voucher_attr_manager_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		uint32_t diagnostic_flag;
-	} __Request__host_set_atm_diagnostic_flag_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__host_get_atm_diagnostic_flag_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__mach_memory_info_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		uint32_t multiuser_flags;
-	} __Request__host_set_multiuser_config_flags_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__host_get_multiuser_config_flags_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__host_check_multiuser_mode_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		mach_zone_name_t name;
-	} __Request__mach_zone_info_for_zone_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-#endif /* !__Request__mach_host_subsystem__defined */
-
-/* union of all requests */
-
-#ifndef __RequestUnion__mach_host_subsystem__defined
-#define __RequestUnion__mach_host_subsystem__defined
-union __RequestUnion__mach_host_subsystem {
-	__Request__host_info_t Request_host_info;
-	__Request__host_kernel_version_t Request_host_kernel_version;
-	__Request___host_page_size_t Request__host_page_size;
-	__Request__mach_memory_object_memory_entry_t Request_mach_memory_object_memory_entry;
-	__Request__host_processor_info_t Request_host_processor_info;
-	__Request__host_get_io_master_t Request_host_get_io_master;
-	__Request__host_get_clock_service_t Request_host_get_clock_service;
-	__Request__kmod_get_info_t Request_kmod_get_info;
-	__Request__host_virtual_physical_table_info_t Request_host_virtual_physical_table_info;
-	__Request__processor_set_default_t Request_processor_set_default;
-	__Request__processor_set_create_t Request_processor_set_create;
-	__Request__mach_memory_object_memory_entry_64_t Request_mach_memory_object_memory_entry_64;
-	__Request__host_statistics_t Request_host_statistics;
-	__Request__host_request_notification_t Request_host_request_notification;
-	__Request__host_lockgroup_info_t Request_host_lockgroup_info;
-	__Request__host_statistics64_t Request_host_statistics64;
-	__Request__mach_zone_info_t Request_mach_zone_info;
-	__Request__host_create_mach_voucher_t Request_host_create_mach_voucher;
-	__Request__host_register_mach_voucher_attr_manager_t Request_host_register_mach_voucher_attr_manager;
-	__Request__host_register_well_known_mach_voucher_attr_manager_t Request_host_register_well_known_mach_voucher_attr_manager;
-	__Request__host_set_atm_diagnostic_flag_t Request_host_set_atm_diagnostic_flag;
-	__Request__host_get_atm_diagnostic_flag_t Request_host_get_atm_diagnostic_flag;
-	__Request__mach_memory_info_t Request_mach_memory_info;
-	__Request__host_set_multiuser_config_flags_t Request_host_set_multiuser_config_flags;
-	__Request__host_get_multiuser_config_flags_t Request_host_get_multiuser_config_flags;
-	__Request__host_check_multiuser_mode_t Request_host_check_multiuser_mode;
-	__Request__mach_zone_info_for_zone_t Request_mach_zone_info_for_zone;
-};
-#endif /* !__RequestUnion__mach_host_subsystem__defined */
-/* typedefs for all replies */
-
-#ifndef __Reply__mach_host_subsystem__defined
-#define __Reply__mach_host_subsystem__defined
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		mach_msg_type_number_t host_info_outCnt;
-		integer_t host_info_out[68];
-	} __Reply__host_info_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		mach_msg_type_number_t kernel_versionOffset; /* MiG doesn't use it */
-		mach_msg_type_number_t kernel_versionCnt;
-		char kernel_version[512];
-	} __Reply__host_kernel_version_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		vm_size_t out_page_size;
-	} __Reply___host_page_size_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t entry_handle;
-		/* end of the kernel processed data */
-	} __Reply__mach_memory_object_memory_entry_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_ool_descriptor_t out_processor_info;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		natural_t out_processor_count;
-		mach_msg_type_number_t out_processor_infoCnt;
-	} __Reply__host_processor_info_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t io_master;
-		/* end of the kernel processed data */
-	} __Reply__host_get_io_master_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t clock_serv;
-		/* end of the kernel processed data */
-	} __Reply__host_get_clock_service_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_ool_descriptor_t modules;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		mach_msg_type_number_t modulesCnt;
-	} __Reply__kmod_get_info_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_ool_descriptor_t info;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		mach_msg_type_number_t infoCnt;
-	} __Reply__host_virtual_physical_table_info_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t default_set;
-		/* end of the kernel processed data */
-	} __Reply__processor_set_default_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t new_set;
-		mach_msg_port_descriptor_t new_name;
-		/* end of the kernel processed data */
-	} __Reply__processor_set_create_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t entry_handle;
-		/* end of the kernel processed data */
-	} __Reply__mach_memory_object_memory_entry_64_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		mach_msg_type_number_t host_info_outCnt;
-		integer_t host_info_out[68];
-	} __Reply__host_statistics_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__host_request_notification_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_ool_descriptor_t lockgroup_info;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		mach_msg_type_number_t lockgroup_infoCnt;
-	} __Reply__host_lockgroup_info_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		mach_msg_type_number_t host_info64_outCnt;
-		integer_t host_info64_out[256];
-	} __Reply__host_statistics64_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_ool_descriptor_t names;
-		mach_msg_ool_descriptor_t info;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		mach_msg_type_number_t namesCnt;
-		mach_msg_type_number_t infoCnt;
-	} __Reply__mach_zone_info_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t voucher;
-		/* end of the kernel processed data */
-	} __Reply__host_create_mach_voucher_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t new_attr_control;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		mach_voucher_attr_key_t new_key;
-	} __Reply__host_register_mach_voucher_attr_manager_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t new_attr_control;
-		/* end of the kernel processed data */
-	} __Reply__host_register_well_known_mach_voucher_attr_manager_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__host_set_atm_diagnostic_flag_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		uint32_t diagnostic_flag;
-	} __Reply__host_get_atm_diagnostic_flag_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_ool_descriptor_t names;
-		mach_msg_ool_descriptor_t info;
-		mach_msg_ool_descriptor_t memory_info;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		mach_msg_type_number_t namesCnt;
-		mach_msg_type_number_t infoCnt;
-		mach_msg_type_number_t memory_infoCnt;
-	} __Reply__mach_memory_info_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__host_set_multiuser_config_flags_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		uint32_t multiuser_flags;
-	} __Reply__host_get_multiuser_config_flags_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		uint32_t multiuser_mode;
-	} __Reply__host_check_multiuser_mode_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		mach_zone_info_t info;
-	} __Reply__mach_zone_info_for_zone_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-#endif /* !__Reply__mach_host_subsystem__defined */
-
-/* union of all replies */
-
-#ifndef __ReplyUnion__mach_host_subsystem__defined
-#define __ReplyUnion__mach_host_subsystem__defined
-union __ReplyUnion__mach_host_subsystem {
-	__Reply__host_info_t Reply_host_info;
-	__Reply__host_kernel_version_t Reply_host_kernel_version;
-	__Reply___host_page_size_t Reply__host_page_size;
-	__Reply__mach_memory_object_memory_entry_t Reply_mach_memory_object_memory_entry;
-	__Reply__host_processor_info_t Reply_host_processor_info;
-	__Reply__host_get_io_master_t Reply_host_get_io_master;
-	__Reply__host_get_clock_service_t Reply_host_get_clock_service;
-	__Reply__kmod_get_info_t Reply_kmod_get_info;
-	__Reply__host_virtual_physical_table_info_t Reply_host_virtual_physical_table_info;
-	__Reply__processor_set_default_t Reply_processor_set_default;
-	__Reply__processor_set_create_t Reply_processor_set_create;
-	__Reply__mach_memory_object_memory_entry_64_t Reply_mach_memory_object_memory_entry_64;
-	__Reply__host_statistics_t Reply_host_statistics;
-	__Reply__host_request_notification_t Reply_host_request_notification;
-	__Reply__host_lockgroup_info_t Reply_host_lockgroup_info;
-	__Reply__host_statistics64_t Reply_host_statistics64;
-	__Reply__mach_zone_info_t Reply_mach_zone_info;
-	__Reply__host_create_mach_voucher_t Reply_host_create_mach_voucher;
-	__Reply__host_register_mach_voucher_attr_manager_t Reply_host_register_mach_voucher_attr_manager;
-	__Reply__host_register_well_known_mach_voucher_attr_manager_t Reply_host_register_well_known_mach_voucher_attr_manager;
-	__Reply__host_set_atm_diagnostic_flag_t Reply_host_set_atm_diagnostic_flag;
-	__Reply__host_get_atm_diagnostic_flag_t Reply_host_get_atm_diagnostic_flag;
-	__Reply__mach_memory_info_t Reply_mach_memory_info;
-	__Reply__host_set_multiuser_config_flags_t Reply_host_set_multiuser_config_flags;
-	__Reply__host_get_multiuser_config_flags_t Reply_host_get_multiuser_config_flags;
-	__Reply__host_check_multiuser_mode_t Reply_host_check_multiuser_mode;
-	__Reply__mach_zone_info_for_zone_t Reply_mach_zone_info_for_zone;
-};
-#endif /* !__RequestUnion__mach_host_subsystem__defined */
-
-#ifndef subsystem_to_name_map_mach_host
-#define subsystem_to_name_map_mach_host \
-    { "host_info", 200 },\
-    { "host_kernel_version", 201 },\
-    { "_host_page_size", 202 },\
-    { "mach_memory_object_memory_entry", 203 },\
-    { "host_processor_info", 204 },\
-    { "host_get_io_master", 205 },\
-    { "host_get_clock_service", 206 },\
-    { "kmod_get_info", 207 },\
-    { "host_virtual_physical_table_info", 209 },\
-    { "processor_set_default", 213 },\
-    { "processor_set_create", 214 },\
-    { "mach_memory_object_memory_entry_64", 215 },\
-    { "host_statistics", 216 },\
-    { "host_request_notification", 217 },\
-    { "host_lockgroup_info", 218 },\
-    { "host_statistics64", 219 },\
-    { "mach_zone_info", 220 },\
-    { "host_create_mach_voucher", 222 },\
-    { "host_register_mach_voucher_attr_manager", 223 },\
-    { "host_register_well_known_mach_voucher_attr_manager", 224 },\
-    { "host_set_atm_diagnostic_flag", 225 },\
-    { "host_get_atm_diagnostic_flag", 226 },\
-    { "mach_memory_info", 227 },\
-    { "host_set_multiuser_config_flags", 228 },\
-    { "host_get_multiuser_config_flags", 229 },\
-    { "host_check_multiuser_mode", 230 },\
-    { "mach_zone_info_for_zone", 231 }
-#endif
-
-#ifdef __AfterMigUserHeader
-__AfterMigUserHeader
-#endif /* __AfterMigUserHeader */
-
-#endif	 /* _mach_host_user_ */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/mach_init.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/mach_init.h
deleted file mode 100644
index 4d9d51f4..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/mach_init.h
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * Copyright (c) 1999 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * Mach Operating System
- * Copyright (c) 1991,1990,1989,1988,1987,1986 Carnegie Mellon University
- * All Rights Reserved.
- *
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- */
-
-/*
- *	Items provided by the Mach environment initialization.
- */
-
-#ifndef _MACH_INIT_
-#define _MACH_INIT_     1
-
-#include <mach/mach_types.h>
-#include <mach/vm_page_size.h>
-#include <stdarg.h>
-
-#include <sys/cdefs.h>
-
-/*
- *	Kernel-related ports; how a task/thread controls itself
- */
-
-__BEGIN_DECLS
-extern mach_port_t mach_host_self(void);
-extern mach_port_t mach_thread_self(void);
-extern kern_return_t host_page_size(host_t, vm_size_t *);
-
-extern mach_port_t      mach_task_self_;
-#define mach_task_self() mach_task_self_
-#define current_task()  mach_task_self()
-
-__END_DECLS
-#include <mach/mach_traps.h>
-__BEGIN_DECLS
-
-/*
- *	Other important ports in the Mach user environment
- */
-
-extern  mach_port_t     bootstrap_port;
-
-/*
- *	Where these ports occur in the "mach_ports_register"
- *	collection... only servers or the runtime library need know.
- */
-
-#define NAME_SERVER_SLOT        0
-#define ENVIRONMENT_SLOT        1
-#define SERVICE_SLOT            2
-
-#define MACH_PORTS_SLOTS_USED   3
-
-/*
- *	fprintf_stderr uses vprintf_stderr_func to produce
- *	error messages, this can be overridden by a user
- *	application to point to a user-specified output function
- */
-extern int (*vprintf_stderr_func)(const char *format, va_list ap);
-
-__END_DECLS
-
-#endif  /* _MACH_INIT_ */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/mach_interface.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/mach_interface.h
deleted file mode 100644
index e6c6b7ac..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/mach_interface.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright (c) 2003 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * Copyright (C) Apple Computer 1998
- * ALL Rights Reserved
- */
-/*
- * This file represents the interfaces that used to come
- * from creating the user headers from the mach.defs file.
- * Because mach.defs was decomposed, this file now just
- * wraps up all the new interface headers generated from
- * each of the new .defs resulting from that decomposition.
- */
-#ifndef _MACH_INTERFACE_H_
-#define _MACH_INTERFACE_H_
-
-#include <mach/clock_priv.h>
-#include <mach/host_priv.h>
-#include <mach/host_security.h>
-#include <mach/lock_set.h>
-#include <mach/processor.h>
-#include <mach/processor_set.h>
-#include <mach/semaphore.h>
-#include <mach/task.h>
-#include <mach/thread_act.h>
-#include <mach/vm_map.h>
-
-#endif /* _MACH_INTERFACE_H_ */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/mach_param.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/mach_param.h
deleted file mode 100644
index fb426130..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/mach_param.h
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-/*
- * Mach Operating System
- * Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University
- * All Rights Reserved.
- *
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- */
-/*
- */
-/*
- *	File:	mach/mach_param.h
- *	Author:	Avadis Tevanian, Jr., Michael Wayne Young
- *	Date:	1986
- *
- *	Mach system sizing parameters
- */
-
-#ifndef _MACH_MACH_PARAM_H_
-#define _MACH_MACH_PARAM_H_
-
-/* Number of "registered" ports */
-
-#define TASK_PORT_REGISTER_MAX  3
-
-/* Number of watchport for task */
-#define TASK_MAX_WATCHPORT_COUNT 32
-
-#endif  /* _MACH_MACH_PARAM_H_ */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/mach_port.defs b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/mach_port.defs
deleted file mode 100644
index d62095ad..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/mach_port.defs
+++ /dev/null
@@ -1,676 +0,0 @@
-/*
- * Copyright (c) 2000-2004 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- * 
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- * 
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- * 
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- * 
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_FREE_COPYRIGHT@
- */
-/* 
- * Mach Operating System
- * Copyright (c) 1991,1990,1989 Carnegie Mellon University
- * All Rights Reserved.
- * 
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- * 
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- * 
- * Carnegie Mellon requests users of this software to return to
- * 
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- * 
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- */
-/*
- */
-/*
- *	File:	mach/mach_port.defs
- *	Author:	Rich Draves
- *
- *	Exported kernel calls.
- */
-
-subsystem
-#if	KERNEL_SERVER
-	  KernelServer
-#endif	/* KERNEL_SERVER */
-	  mach_port 3200;
-
-#if !KERNEL && !LIBSYSCALL_INTERFACE
-	UserPrefix _kernelrpc_;
-#endif
-
-#include <mach/std_types.defs>
-#include <mach/mach_types.defs>
-#include <mach_debug/mach_debug_types.defs>
-
-type kobject_description_t = c_string[*:512];
-
-/*
- *	Returns the set of port and port set names
- *	to which the target task has access, along with
- *	the type (set or port) for each name.
- */
-
-routine mach_port_names(
-		task		: ipc_space_t;
-	out	names		: mach_port_name_array_t;
-	out	types		: mach_port_type_array_t);
-
-/*
- *	Returns the type (set or port) for the port name
- *	within the target task.  Also indicates whether
- *	there is a dead-name request for the name.
- */
-
-routine mach_port_type(
-		task		: ipc_space_t;
-		name		: mach_port_name_t;
-	out	ptype		: mach_port_type_t);
-
-/*
- *	Changes the name by which a port (or port set) is known to
- *	the target task.  The new name can't be in use.  The
- *	old name becomes available for recycling.
- *
- *	This interface is OBSOLETE and will always
- *	return KERN_NOT_SUPPORTED.
- */
-
-routine mach_port_rename(
-		task		: ipc_space_t;
-		old_name	: mach_port_name_t;
-		new_name	: mach_port_name_t);
-
-/*
- *	Allocates the specified kind of object, with the given name.
- *	The right must be one of
- *		MACH_PORT_RIGHT_RECEIVE
- *		MACH_PORT_RIGHT_PORT_SET
- *		MACH_PORT_RIGHT_DEAD_NAME
- *	New port sets are empty.  New ports don't have any
- *	send/send-once rights or queued messages.  The make-send
- *	count is zero and their queue limit is MACH_PORT_QLIMIT_DEFAULT.
- *	New sets, ports, and dead names have one user reference.
- */
-
-routine mach_port_allocate_name(
-		task		: ipc_space_t;
-		right		: mach_port_right_t;
-		name		: mach_port_name_t);
-
-/*
- *	Allocates the specified kind of object.
- *	The right must be one of
- *		MACH_PORT_RIGHT_RECEIVE
- *		MACH_PORT_RIGHT_PORT_SET
- *		MACH_PORT_RIGHT_DEAD_NAME
- *	Like port_allocate_name, but the kernel picks a name.
- *	It can use any name not associated with a right.
- */
-
-routine mach_port_allocate(
-		task		: ipc_space_t;
-		right		: mach_port_right_t;
-	out	name		: mach_port_name_t);
-
-/*
- *	Destroys all rights associated with the name and makes it
- *	available for recycling immediately.  The name can be a
- *	port (possibly with multiple user refs), a port set, or
- *	a dead name (again, with multiple user refs).
- */
-
-routine mach_port_destroy(
-		task		: ipc_space_t;
-		name		: mach_port_name_t);
-
-/*
- *	Releases one send/send-once/dead-name user ref.
- *	Just like mach_port_mod_refs -1, but deduces the
- *	correct type of right.  This allows a user task
- *	to release a ref for a port without worrying
- *	about whether the port has died or not.
- */
-
-routine mach_port_deallocate(
-		task		: ipc_space_t;
-		name		: mach_port_name_t);
-
-/*
- *	A port set always has one user ref.
- *	A send-once right always has one user ref.
- *	A dead name always has one or more user refs.
- *	A send right always has one or more user refs.
- *	A receive right always has one user ref.
- *	The right must be one of
- *		MACH_PORT_RIGHT_RECEIVE
- *		MACH_PORT_RIGHT_PORT_SET
- *		MACH_PORT_RIGHT_DEAD_NAME
- *		MACH_PORT_RIGHT_SEND
- *		MACH_PORT_RIGHT_SEND_ONCE
- */
-
-routine mach_port_get_refs(
-		task		: ipc_space_t;
-		name		: mach_port_name_t;
-		right		: mach_port_right_t;
-	out	refs		: mach_port_urefs_t);
-
-/*
- *	The delta is a signed change to the task's
- *	user ref count for the right.  Only dead names
- *	and send rights can have a positive delta.
- *	The resulting user ref count can't be negative.
- *	If it is zero, the right is deallocated.
- *	If the name isn't a composite right, it becomes
- *	available for recycling.  The right must be one of
- *		MACH_PORT_RIGHT_RECEIVE
- *		MACH_PORT_RIGHT_PORT_SET
- *		MACH_PORT_RIGHT_DEAD_NAME
- *		MACH_PORT_RIGHT_SEND
- *		MACH_PORT_RIGHT_SEND_ONCE
- */
-
-routine mach_port_mod_refs(
-		task		: ipc_space_t;
-		name		: mach_port_name_t;
-		right		: mach_port_right_t;
-		delta		: mach_port_delta_t);
-
-/*
- *	Peek at the message queue for the specified receive
- *	right and return info about the message with the
- *	sequence number matching the input.  If zero is
- *	specified as the seqno, the first message in the
- *	queue will be peeked.
- *
- *	Only the following trailer types are currently supported:
- *	     MACH_RCV_TRAILER_TYPE(MACH_MSG_TRAILER_FORMAT_0)
- *
- *		or'ed with one of these element types:
- *	     MACH_RCV_TRAILER_ELEMENTS(MACH_RCV_TRAILER_NULL)
- *	     MACH_RCV_TRAILER_ELEMENTS(MACH_RCV_TRAILER_SEQNO)
- *	     MACH_RCV_TRAILER_ELEMENTS(MACH_RCV_TRAILER_SENDER)
- *	     MACH_RCV_TRAILER_ELEMENTS(MACH_RCV_TRAILER_AUDIT)
- */
-routine mach_port_peek(
-		task		: ipc_space_t;
-		name		: mach_port_name_t;
-		trailer_type	: mach_msg_trailer_type_t;
- inout		request_seqnop	: mach_port_seqno_t;
- out		msg_sizep	: mach_msg_size_t;
- out		msg_idp		: mach_msg_id_t;
- out		trailer_infop	: mach_msg_trailer_info_t, CountInOut);		
-
-/*
- *	Only valid for receive rights.
- *	Sets the make-send count for the port.
- */
-routine mach_port_set_mscount(
-		task		: ipc_space_t;
-		name		: mach_port_name_t;
-		mscount		: mach_port_mscount_t);
-
-/*
- *	Only valid for port sets.  Returns a list of
- *	the members.
- */
-
-routine mach_port_get_set_status(
-		task		: ipc_space_inspect_t;
-		name		: mach_port_name_t;
-	out	members		: mach_port_name_array_t);
-
-/*
- *	Puts the member port (the task must have receive rights)
- *	into the after port set.  If the port is already a member
- *	of any set(s), it is atomically removed from those sets as
- *	part of this operation.  (If after is MACH_PORT_NULL, the
- *	port is still removed from all current sets).
- */
-
-routine mach_port_move_member(
-		task		: ipc_space_t;
-		member		: mach_port_name_t;
-		after		: mach_port_name_t);
-
-/*
- *	Requests a notification from the kernel.  The request
- *	must supply the send-once right which is used for
- *	the notification.  If a send-once right was previously
- *	registered, it is returned.  The msgid must be one of:
- *		MACH_NOTIFY_PORT_DESTROYED (receive rights)
- *		MACH_NOTIFY_DEAD_NAME (send/receive/send-once rights)
- *		MACH_NOTIFY_SEND_POSSIBLE (send/receive/send-once rights)
- *		MACH_NOTIFY_NO_SENDERS (receive rights)
- *
- *	The sync value specifies whether a notification should
- *	get sent immediately, if appropriate.  The exact meaning
- *	depends on the notification:
- *		MACH_NOTIFY_PORT_DESTROYED: must be zero.
- *		MACH_NOTIFY_DEAD_NAME: if non-zero, then name can be dead,
- *			and the notification gets sent immediately.
- *			If zero, then name can't be dead.
- *		MACH_NOTIFY_SEND_POSSIBLE: if non-zero, will generate a	send-
- *			possible notification as soon as it is possible to send
- *			to the port. If zero, will generate a send-possible
- *			notification only after a subsequent failed send
- *			(with MACH_SEND_NOTIFY option to mach_msg call).  Can
- *			generate a dead-name notification if name is already dead
- *			or becomes dead before a send-possible notification fires.
- *		MACH_NOTIFY_NO_SENDERS: the notification gets sent
- *			immediately if the current mscount is greater
- *			than or equal to the sync value and there are no
- *			extant send rights.
- *
- * If the name is deleted before a successfully registered notification
- * is delivered, it is replaced with a port-deleted notification.
- */
-
-routine mach_port_request_notification(
-		task		: ipc_space_t;
-		name		: mach_port_name_t;
-		msgid		: mach_msg_id_t;
-		sync		: mach_port_mscount_t;
-		notify		: mach_port_send_once_t;
-	out	previous	: mach_port_move_send_once_t);
-
-/*
- *	Inserts the specified rights into the target task,
- *	using the specified name.  If inserting send/receive
- *	rights and the task already has send/receive rights
- *	for the port, then the names must agree.  In any case,
- *	the task gains a user ref for the port.
- */
-
-routine mach_port_insert_right(
-		task		: ipc_space_t;
-		name		: mach_port_name_t;
-		poly		: mach_port_poly_t);
-
-/*
- *	Returns the specified right for the named port
- *	in the target task, extracting that right from
- *	the target task.  The target task loses a user
- *	ref and the name may be available for recycling.
- *	msgt_name must be one of
- *		MACH_MSG_TYPE_MOVE_RECEIVE
- *		MACH_MSG_TYPE_COPY_SEND
- *		MACH_MSG_TYPE_MAKE_SEND
- *		MACH_MSG_TYPE_MOVE_SEND
- *		MACH_MSG_TYPE_MAKE_SEND_ONCE
- *		MACH_MSG_TYPE_MOVE_SEND_ONCE
- */
-
-routine mach_port_extract_right(
-		task		: ipc_space_t;
-		name		: mach_port_name_t;
-		msgt_name	: mach_msg_type_name_t;
-	out	poly		: mach_port_poly_t);
-
-/*
- *	Only valid for receive rights.
- *	Sets the sequence number for the port.
- */
-
-routine mach_port_set_seqno(
-		task		: ipc_space_t;
-		name		: mach_port_name_t;
-		seqno		: mach_port_seqno_t);
-
-/*
- *      Returns information about a port.
- */
-
-routine mach_port_get_attributes(
-		task		: ipc_space_inspect_t;
-		name		: mach_port_name_t;
-		flavor		: mach_port_flavor_t;
-	out	port_info_out	: mach_port_info_t, CountInOut);
-
-/*
- *      Set attributes of a port
- */
-
-routine mach_port_set_attributes(
-		task		: ipc_space_t;
-		name		: mach_port_name_t;
-		flavor		: mach_port_flavor_t;
-		port_info	: mach_port_info_t);
-
-
-/*
- *	Allocates the specified kind of object, qos version.
- *	The right must be
- *		MACH_PORT_RIGHT_RECEIVE
- *	Like port_allocate_name, but the kernel picks a name.
- *	It can use any name not associated with a right.
- */
-
-routine mach_port_allocate_qos(
-		task		: ipc_space_t;
-		right		: mach_port_right_t;
-	inout	qos		: mach_port_qos_t;
-	out	name		: mach_port_name_t);
-
-
-/*
- *	Generic interface to allocation various kinds of ports.
- *	Should never be called directly by users (at least not
- *	unless they are exceedingly masochistic).
- */
-
-routine mach_port_allocate_full(
-		task		: ipc_space_t;
-		right		: mach_port_right_t;
-		proto		: mach_port_t;
-	inout	qos		: mach_port_qos_t;
-	inout	name		: mach_port_name_t);
-
-
-/*
- *	Pre-expand task port name space.
- */
-routine task_set_port_space(
-		task		: ipc_space_t;
-		table_entries	: int);
-
-
-/*
- *	Returns the exact number of extant send rights
- *	for the given receive right.
- *      This call is only valid on MACH_IPC_DEBUG kernels.
- *      Otherwise, KERN_FAILURE is returned.
- */
-routine	mach_port_get_srights(
-		task		: ipc_space_t;
-		name		: mach_port_name_t;
-	out	srights		: mach_port_rights_t);
-
-
-/*
- *	Returns information about an IPC space.
- *      This call is only valid on MACH_IPC_DEBUG kernels.
- *      Otherwise, KERN_FAILURE is returned.
- */
-routine mach_port_space_info(
-		task		: ipc_space_inspect_t;
-	out	space_info	: ipc_info_space_t;
-	out	table_info	: ipc_info_name_array_t;
-	out	tree_info	: ipc_info_tree_name_array_t);
-
-/*
- *	Returns information about the dead-name requests
- *	registered with the named receive right.
- *      This call is only valid on MACH_IPC_DEBUG kernels.
- *      Otherwise, KERN_FAILURE is returned.
- */
-routine mach_port_dnrequest_info(
-		task		: ipc_space_t;
-		name		: mach_port_name_t;
-	out	dnr_total	: unsigned;	/* total size of table */
-	out	dnr_used	: unsigned);	/* amount used */
-
-/*
- *	Return the type and address of the kernel object
- *	that the given send/receive right represents.
- *      This call is only valid on MACH_IPC_DEBUG kernels.
- *      Otherwise, KERN_FAILURE is returned.
- *
- *	This interface is DEPRECATED in favor of the new
- *	mach_port_kernel_object64() call (see below).
- */
-routine	mach_port_kernel_object(
-		task		: ipc_space_inspect_t;
-		name		: mach_port_name_t;
-	out	object_type	: unsigned;
-	out	object_addr	: unsigned);
-
-
-/*
- *	Inserts the specified rights into the portset identified
- *	by the <task, pset> pair.  The results of passing in the
- *	Poly argument via the supplied disposition must yield a
- *	receive right.
- *
- *	If the <task,pset> pair does not represent a valid portset
- *	KERN_INVALID_RIGHT is returned.
- *	
- *	If the passed in name argument does not represent a receive
- *	right, KERN_INVALID_CAPABILITY will be returned.
- *
- *	If the port represented by the receive right is already in
- *	the portset, KERN_ALREADY_IN_SET is returned.
- */
-routine mach_port_insert_member(
-		task		: ipc_space_t;
-		name		: mach_port_name_t;
-		pset		: mach_port_name_t);
-
-/*
- *	Extracts the specified right from the named portset
- *	in the target task.  
- *	the target task.  The target task loses a user
- *	ref and the name may be available for recycling.
- *	msgt_name must be one of
- *		MACH_MSG_TYPE_MOVE_RECEIVE
- *		MACH_MSG_TYPE_COPY_SEND
- *		MACH_MSG_TYPE_MAKE_SEND
- *		MACH_MSG_TYPE_MOVE_SEND
- *		MACH_MSG_TYPE_MAKE_SEND_ONCE
- *		MACH_MSG_TYPE_MOVE_SEND_ONCE
- */
-
-routine mach_port_extract_member(
-		task		: ipc_space_t;
-		name		: mach_port_name_t;
-		pset		: mach_port_name_t);
-
-/*
- * Only valid for receive rights.
- * Gets the context pointer for the port.
- */
-
-routine mach_port_get_context(
-		task		: ipc_space_inspect_t;
-		name		: mach_port_name_t;
-#ifdef LIBSYSCALL_INTERFACE
-	out context		: mach_port_context_t
-#else
-	out context		: mach_vm_address_t
-#endif
-	);
-
-/*
- * Only valid for receive rights.
- * Sets the context pointer for the port.
- */
-
-routine mach_port_set_context(
-		task		: ipc_space_t;
-		name		: mach_port_name_t;
-#ifdef LIBSYSCALL_INTERFACE
-		context		: mach_port_context_t
-#else
-		context		: mach_vm_address_t
-#endif
-		);
-
-/*
- *	Return the type and address of the kernel object
- *	that the given send/receive right represents.
- *      This call is only valid on MACH_IPC_DEBUG kernels.
- *      Otherwise, KERN_FAILURE is returned.
- */
-routine	mach_port_kobject(
-		task		: ipc_space_inspect_t;
-		name		: mach_port_name_t;
-	out	object_type	: natural_t;
-	out	object_addr	: mach_vm_address_t);
-
-
-/*
- *	Constructs a right based on the options passed
- *	in. Also allows guarding the port as one of the
- *	options if the requested right is a receive
- *	right.
- */
-routine mach_port_construct(
-		task		: ipc_space_t;
-		options		: mach_port_options_ptr_t;
-#ifdef LIBSYSCALL_INTERFACE
-		context		: mach_port_context_t;
-#else
-		context		: uint64_t;
-#endif
-	out	name		: mach_port_name_t);
-
-/*
- *	Destroys a mach port using the guard provided
- *	for guarded ports. Also reduces the user ref
- *	count for send rights as specified by srdelta.
- */
-routine mach_port_destruct(
-		task		: ipc_space_t;
-		name		: mach_port_name_t;
-		srdelta		: mach_port_delta_t;
-#ifdef LIBSYSCALL_INTERFACE
-		guard		: mach_port_context_t
-#else
-		guard		: uint64_t
-#endif		
-		);
-
-/*
- *	Guard an already existing port. Allows guarding
- *	receive rights only. Uses the context field in the
- *	port structure to store the guard.
- */
-routine mach_port_guard(
-		task		: ipc_space_t;
-		name		: mach_port_name_t;
-#ifdef LIBSYSCALL_INTERFACE
-		guard		: mach_port_context_t;
-#else
-		guard		: uint64_t;
-#endif	
-		strict		: boolean_t);
-
-/*
- *	Unguard a port guarded previously. For unguarded ports
- *	or incorrect guards passed in it raises an exception
- *	indicating guarding misbehavior.
- */
-routine mach_port_unguard(
-		task		: ipc_space_t;
-		name		: mach_port_name_t;
-#ifdef LIBSYSCALL_INTERFACE
-		guard		: mach_port_context_t
-#else
-		guard		: uint64_t
-#endif	
-		);
-
-/*
- *	Returns basic information about an IPC space.
- *      This call is only valid on MACH_IPC_DEBUG kernels.
- *      Otherwise, KERN_FAILURE is returned.
- */
-routine mach_port_space_basic_info(
-		task		: ipc_space_inspect_t;
-	out	basic_info	: ipc_info_space_basic_t);
-
-#if KERNEL || !LIBSYSCALL_INTERFACE
-/*
- *	Returns sync ipc turnstile link status
- *	for special reply ports.
- */
-routine mach_port_special_reply_port_reset_link(
-		task            : ipc_space_t;
-		name            : mach_port_name_t;
-	out	srp_lost_link	: boolean_t);
-#else
-skip;
-#endif
-
-/*
- *	Guard an already existing port. Allows guarding
- *	receive rights only. Uses the context field in the
- *	port structure to store the guard.
- */
-routine mach_port_guard_with_flags(
-		task		: ipc_space_t;
-		name		: mach_port_name_t;
-#ifdef LIBSYSCALL_INTERFACE
-		guard		: mach_port_context_t;
-#else
-		guard		: uint64_t;
-#endif
-		flags		: uint64_t);
-
-/*
- *	Swap guard value of an existing guarded port. Works
- *	only if it is not a strict guard.
- */
-routine mach_port_swap_guard(
-		task		: ipc_space_t;
-		name		: mach_port_name_t;
-#ifdef LIBSYSCALL_INTERFACE
-		old_guard	: mach_port_context_t;
-#else
-		old_guard	: uint64_t;
-#endif
-
-#ifdef LIBSYSCALL_INTERFACE
-		new_guard	: mach_port_context_t);
-#else
-		new_guard	: uint64_t);
-#endif
-
-/*
- *	Return the type and address of the kernel object
- *	that the given send/receive right represents.
- *      This call is only valid on MACH_IPC_DEBUG kernels.
- *      Otherwise, KERN_FAILURE is returned.
- */
-routine	mach_port_kobject_description(
-		task		: ipc_space_inspect_t;
-		name		: mach_port_name_t;
-	out	object_type	: natural_t;
-	out	object_addr	: mach_vm_address_t;
-	out     description     : kobject_description_t);
-
-/* vim: set ft=c : */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/mach_port.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/mach_port.h
deleted file mode 100644
index 8f587e3b..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/mach_port.h
+++ /dev/null
@@ -1,1808 +0,0 @@
-#ifndef	_mach_port_user_
-#define	_mach_port_user_
-
-/* Module mach_port */
-
-#include <string.h>
-#include <mach/ndr.h>
-#include <mach/boolean.h>
-#include <mach/kern_return.h>
-#include <mach/notify.h>
-#include <mach/mach_types.h>
-#include <mach/message.h>
-#include <mach/mig_errors.h>
-#include <mach/port.h>
-	
-/* BEGIN MIG_STRNCPY_ZEROFILL CODE */
-
-#if defined(__has_include)
-#if __has_include(<mach/mig_strncpy_zerofill_support.h>)
-#ifndef USING_MIG_STRNCPY_ZEROFILL
-#define USING_MIG_STRNCPY_ZEROFILL
-#endif
-#ifndef __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
-#define __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
-#ifdef __cplusplus
-extern "C" {
-#endif
-	extern int mig_strncpy_zerofill(char *dest, const char *src, int len) __attribute__((weak_import));
-#ifdef __cplusplus
-}
-#endif
-#endif /* __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__ */
-#endif /* __has_include(<mach/mig_strncpy_zerofill_support.h>) */
-#endif /* __has_include */
-	
-/* END MIG_STRNCPY_ZEROFILL CODE */
-
-
-#ifdef AUTOTEST
-#ifndef FUNCTION_PTR_T
-#define FUNCTION_PTR_T
-typedef void (*function_ptr_t)(mach_port_t, char *, mach_msg_type_number_t);
-typedef struct {
-        char            *name;
-        function_ptr_t  function;
-} function_table_entry;
-typedef function_table_entry   *function_table_t;
-#endif /* FUNCTION_PTR_T */
-#endif /* AUTOTEST */
-
-#ifndef	mach_port_MSG_COUNT
-#define	mach_port_MSG_COUNT	40
-#endif	/* mach_port_MSG_COUNT */
-
-#include <mach/std_types.h>
-#include <mach/mig.h>
-#include <mach/mig.h>
-#include <mach/mach_types.h>
-#include <mach_debug/mach_debug_types.h>
-
-#ifdef __BeforeMigUserHeader
-__BeforeMigUserHeader
-#endif /* __BeforeMigUserHeader */
-
-#include <sys/cdefs.h>
-__BEGIN_DECLS
-
-
-/* Routine mach_port_names */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_port_names
-(
-	ipc_space_t task,
-	mach_port_name_array_t *names,
-	mach_msg_type_number_t *namesCnt,
-	mach_port_type_array_t *types,
-	mach_msg_type_number_t *typesCnt
-);
-
-/* Routine mach_port_type */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_port_type
-(
-	ipc_space_t task,
-	mach_port_name_t name,
-	mach_port_type_t *ptype
-);
-
-/* Routine mach_port_rename */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_port_rename
-(
-	ipc_space_t task,
-	mach_port_name_t old_name,
-	mach_port_name_t new_name
-);
-
-/* Routine mach_port_allocate_name */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
-kern_return_t mach_port_allocate_name
-(
-	ipc_space_t task,
-	mach_port_right_t right,
-	mach_port_name_t name
-);
-
-/* Routine mach_port_allocate */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_port_allocate
-(
-	ipc_space_t task,
-	mach_port_right_t right,
-	mach_port_name_t *name
-);
-
-/* Routine mach_port_destroy */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_port_destroy
-(
-	ipc_space_t task,
-	mach_port_name_t name
-);
-
-/* Routine mach_port_deallocate */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_port_deallocate
-(
-	ipc_space_t task,
-	mach_port_name_t name
-);
-
-/* Routine mach_port_get_refs */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_port_get_refs
-(
-	ipc_space_t task,
-	mach_port_name_t name,
-	mach_port_right_t right,
-	mach_port_urefs_t *refs
-);
-
-/* Routine mach_port_mod_refs */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_port_mod_refs
-(
-	ipc_space_t task,
-	mach_port_name_t name,
-	mach_port_right_t right,
-	mach_port_delta_t delta
-);
-
-/* Routine mach_port_peek */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_port_peek
-(
-	ipc_space_t task,
-	mach_port_name_t name,
-	mach_msg_trailer_type_t trailer_type,
-	mach_port_seqno_t *request_seqnop,
-	mach_msg_size_t *msg_sizep,
-	mach_msg_id_t *msg_idp,
-	mach_msg_trailer_info_t trailer_infop,
-	mach_msg_type_number_t *trailer_infopCnt
-);
-
-/* Routine mach_port_set_mscount */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_port_set_mscount
-(
-	ipc_space_t task,
-	mach_port_name_t name,
-	mach_port_mscount_t mscount
-);
-
-/* Routine mach_port_get_set_status */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_port_get_set_status
-(
-	ipc_space_inspect_t task,
-	mach_port_name_t name,
-	mach_port_name_array_t *members,
-	mach_msg_type_number_t *membersCnt
-);
-
-/* Routine mach_port_move_member */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_port_move_member
-(
-	ipc_space_t task,
-	mach_port_name_t member,
-	mach_port_name_t after
-);
-
-/* Routine mach_port_request_notification */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_port_request_notification
-(
-	ipc_space_t task,
-	mach_port_name_t name,
-	mach_msg_id_t msgid,
-	mach_port_mscount_t sync,
-	mach_port_t notify,
-	mach_msg_type_name_t notifyPoly,
-	mach_port_t *previous
-);
-
-/* Routine mach_port_insert_right */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_port_insert_right
-(
-	ipc_space_t task,
-	mach_port_name_t name,
-	mach_port_t poly,
-	mach_msg_type_name_t polyPoly
-);
-
-/* Routine mach_port_extract_right */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_port_extract_right
-(
-	ipc_space_t task,
-	mach_port_name_t name,
-	mach_msg_type_name_t msgt_name,
-	mach_port_t *poly,
-	mach_msg_type_name_t *polyPoly
-);
-
-/* Routine mach_port_set_seqno */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_port_set_seqno
-(
-	ipc_space_t task,
-	mach_port_name_t name,
-	mach_port_seqno_t seqno
-);
-
-/* Routine mach_port_get_attributes */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_port_get_attributes
-(
-	ipc_space_inspect_t task,
-	mach_port_name_t name,
-	mach_port_flavor_t flavor,
-	mach_port_info_t port_info_out,
-	mach_msg_type_number_t *port_info_outCnt
-);
-
-/* Routine mach_port_set_attributes */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_port_set_attributes
-(
-	ipc_space_t task,
-	mach_port_name_t name,
-	mach_port_flavor_t flavor,
-	mach_port_info_t port_info,
-	mach_msg_type_number_t port_infoCnt
-);
-
-/* Routine mach_port_allocate_qos */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_port_allocate_qos
-(
-	ipc_space_t task,
-	mach_port_right_t right,
-	mach_port_qos_t *qos,
-	mach_port_name_t *name
-);
-
-/* Routine mach_port_allocate_full */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_port_allocate_full
-(
-	ipc_space_t task,
-	mach_port_right_t right,
-	mach_port_t proto,
-	mach_port_qos_t *qos,
-	mach_port_name_t *name
-);
-
-/* Routine task_set_port_space */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
-kern_return_t task_set_port_space
-(
-	ipc_space_t task,
-	int table_entries
-);
-
-/* Routine mach_port_get_srights */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_port_get_srights
-(
-	ipc_space_t task,
-	mach_port_name_t name,
-	mach_port_rights_t *srights
-);
-
-/* Routine mach_port_space_info */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_port_space_info
-(
-	ipc_space_inspect_t task,
-	ipc_info_space_t *space_info,
-	ipc_info_name_array_t *table_info,
-	mach_msg_type_number_t *table_infoCnt,
-	ipc_info_tree_name_array_t *tree_info,
-	mach_msg_type_number_t *tree_infoCnt
-);
-
-/* Routine mach_port_dnrequest_info */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_port_dnrequest_info
-(
-	ipc_space_t task,
-	mach_port_name_t name,
-	unsigned *dnr_total,
-	unsigned *dnr_used
-);
-
-/* Routine mach_port_kernel_object */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_port_kernel_object
-(
-	ipc_space_inspect_t task,
-	mach_port_name_t name,
-	unsigned *object_type,
-	unsigned *object_addr
-);
-
-/* Routine mach_port_insert_member */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_port_insert_member
-(
-	ipc_space_t task,
-	mach_port_name_t name,
-	mach_port_name_t pset
-);
-
-/* Routine mach_port_extract_member */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_port_extract_member
-(
-	ipc_space_t task,
-	mach_port_name_t name,
-	mach_port_name_t pset
-);
-
-/* Routine mach_port_get_context */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_port_get_context
-(
-	ipc_space_inspect_t task,
-	mach_port_name_t name,
-	mach_port_context_t *context
-);
-
-/* Routine mach_port_set_context */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_port_set_context
-(
-	ipc_space_t task,
-	mach_port_name_t name,
-	mach_port_context_t context
-);
-
-/* Routine mach_port_kobject */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_port_kobject
-(
-	ipc_space_inspect_t task,
-	mach_port_name_t name,
-	natural_t *object_type,
-	mach_vm_address_t *object_addr
-);
-
-/* Routine mach_port_construct */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_port_construct
-(
-	ipc_space_t task,
-	mach_port_options_ptr_t options,
-	mach_port_context_t context,
-	mach_port_name_t *name
-);
-
-/* Routine mach_port_destruct */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_port_destruct
-(
-	ipc_space_t task,
-	mach_port_name_t name,
-	mach_port_delta_t srdelta,
-	mach_port_context_t guard
-);
-
-/* Routine mach_port_guard */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_port_guard
-(
-	ipc_space_t task,
-	mach_port_name_t name,
-	mach_port_context_t guard,
-	boolean_t strict
-);
-
-/* Routine mach_port_unguard */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_port_unguard
-(
-	ipc_space_t task,
-	mach_port_name_t name,
-	mach_port_context_t guard
-);
-
-/* Routine mach_port_space_basic_info */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_port_space_basic_info
-(
-	ipc_space_inspect_t task,
-	ipc_info_space_basic_t *basic_info
-);
-
-/* Routine mach_port_guard_with_flags */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_port_guard_with_flags
-(
-	ipc_space_t task,
-	mach_port_name_t name,
-	mach_port_context_t guard,
-	uint64_t flags
-);
-
-/* Routine mach_port_swap_guard */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_port_swap_guard
-(
-	ipc_space_t task,
-	mach_port_name_t name,
-	mach_port_context_t old_guard,
-	mach_port_context_t new_guard
-);
-
-/* Routine mach_port_kobject_description */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_port_kobject_description
-(
-	ipc_space_inspect_t task,
-	mach_port_name_t name,
-	natural_t *object_type,
-	mach_vm_address_t *object_addr,
-	kobject_description_t description
-);
-
-__END_DECLS
-
-/********************** Caution **************************/
-/* The following data types should be used to calculate  */
-/* maximum message sizes only. The actual message may be */
-/* smaller, and the position of the arguments within the */
-/* message layout may vary from what is presented here.  */
-/* For example, if any of the arguments are variable-    */
-/* sized, and less than the maximum is sent, the data    */
-/* will be packed tight in the actual message to reduce  */
-/* the presence of holes.                                */
-/********************** Caution **************************/
-
-/* typedefs for all requests */
-
-#ifndef __Request__mach_port_subsystem__defined
-#define __Request__mach_port_subsystem__defined
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__mach_port_names_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		mach_port_name_t name;
-	} __Request__mach_port_type_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		mach_port_name_t old_name;
-		mach_port_name_t new_name;
-	} __Request__mach_port_rename_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		mach_port_right_t right;
-		mach_port_name_t name;
-	} __Request__mach_port_allocate_name_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		mach_port_right_t right;
-	} __Request__mach_port_allocate_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		mach_port_name_t name;
-	} __Request__mach_port_destroy_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		mach_port_name_t name;
-	} __Request__mach_port_deallocate_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		mach_port_name_t name;
-		mach_port_right_t right;
-	} __Request__mach_port_get_refs_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		mach_port_name_t name;
-		mach_port_right_t right;
-		mach_port_delta_t delta;
-	} __Request__mach_port_mod_refs_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		mach_port_name_t name;
-		mach_msg_trailer_type_t trailer_type;
-		mach_port_seqno_t request_seqnop;
-		mach_msg_type_number_t trailer_infopCnt;
-	} __Request__mach_port_peek_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		mach_port_name_t name;
-		mach_port_mscount_t mscount;
-	} __Request__mach_port_set_mscount_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		mach_port_name_t name;
-	} __Request__mach_port_get_set_status_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		mach_port_name_t member;
-		mach_port_name_t after;
-	} __Request__mach_port_move_member_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t notify;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		mach_port_name_t name;
-		mach_msg_id_t msgid;
-		mach_port_mscount_t sync;
-	} __Request__mach_port_request_notification_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t poly;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		mach_port_name_t name;
-	} __Request__mach_port_insert_right_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		mach_port_name_t name;
-		mach_msg_type_name_t msgt_name;
-	} __Request__mach_port_extract_right_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		mach_port_name_t name;
-		mach_port_seqno_t seqno;
-	} __Request__mach_port_set_seqno_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		mach_port_name_t name;
-		mach_port_flavor_t flavor;
-		mach_msg_type_number_t port_info_outCnt;
-	} __Request__mach_port_get_attributes_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		mach_port_name_t name;
-		mach_port_flavor_t flavor;
-		mach_msg_type_number_t port_infoCnt;
-		integer_t port_info[17];
-	} __Request__mach_port_set_attributes_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		mach_port_right_t right;
-		mach_port_qos_t qos;
-	} __Request__mach_port_allocate_qos_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t proto;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		mach_port_right_t right;
-		mach_port_qos_t qos;
-		mach_port_name_t name;
-	} __Request__mach_port_allocate_full_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		int table_entries;
-	} __Request__task_set_port_space_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		mach_port_name_t name;
-	} __Request__mach_port_get_srights_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__mach_port_space_info_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		mach_port_name_t name;
-	} __Request__mach_port_dnrequest_info_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		mach_port_name_t name;
-	} __Request__mach_port_kernel_object_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		mach_port_name_t name;
-		mach_port_name_t pset;
-	} __Request__mach_port_insert_member_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		mach_port_name_t name;
-		mach_port_name_t pset;
-	} __Request__mach_port_extract_member_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		mach_port_name_t name;
-	} __Request__mach_port_get_context_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		mach_port_name_t name;
-		mach_port_context_t context;
-	} __Request__mach_port_set_context_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		mach_port_name_t name;
-	} __Request__mach_port_kobject_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_ool_descriptor_t options;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		mach_port_context_t context;
-	} __Request__mach_port_construct_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		mach_port_name_t name;
-		mach_port_delta_t srdelta;
-		mach_port_context_t guard;
-	} __Request__mach_port_destruct_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		mach_port_name_t name;
-		mach_port_context_t guard;
-		boolean_t strict;
-	} __Request__mach_port_guard_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		mach_port_name_t name;
-		mach_port_context_t guard;
-	} __Request__mach_port_unguard_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__mach_port_space_basic_info_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		mach_port_name_t name;
-		mach_port_context_t guard;
-		uint64_t flags;
-	} __Request__mach_port_guard_with_flags_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		mach_port_name_t name;
-		mach_port_context_t old_guard;
-		mach_port_context_t new_guard;
-	} __Request__mach_port_swap_guard_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		mach_port_name_t name;
-	} __Request__mach_port_kobject_description_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-#endif /* !__Request__mach_port_subsystem__defined */
-
-/* union of all requests */
-
-#ifndef __RequestUnion__mach_port_subsystem__defined
-#define __RequestUnion__mach_port_subsystem__defined
-union __RequestUnion__mach_port_subsystem {
-	__Request__mach_port_names_t Request_mach_port_names;
-	__Request__mach_port_type_t Request_mach_port_type;
-	__Request__mach_port_rename_t Request_mach_port_rename;
-	__Request__mach_port_allocate_name_t Request_mach_port_allocate_name;
-	__Request__mach_port_allocate_t Request_mach_port_allocate;
-	__Request__mach_port_destroy_t Request_mach_port_destroy;
-	__Request__mach_port_deallocate_t Request_mach_port_deallocate;
-	__Request__mach_port_get_refs_t Request_mach_port_get_refs;
-	__Request__mach_port_mod_refs_t Request_mach_port_mod_refs;
-	__Request__mach_port_peek_t Request_mach_port_peek;
-	__Request__mach_port_set_mscount_t Request_mach_port_set_mscount;
-	__Request__mach_port_get_set_status_t Request_mach_port_get_set_status;
-	__Request__mach_port_move_member_t Request_mach_port_move_member;
-	__Request__mach_port_request_notification_t Request_mach_port_request_notification;
-	__Request__mach_port_insert_right_t Request_mach_port_insert_right;
-	__Request__mach_port_extract_right_t Request_mach_port_extract_right;
-	__Request__mach_port_set_seqno_t Request_mach_port_set_seqno;
-	__Request__mach_port_get_attributes_t Request_mach_port_get_attributes;
-	__Request__mach_port_set_attributes_t Request_mach_port_set_attributes;
-	__Request__mach_port_allocate_qos_t Request_mach_port_allocate_qos;
-	__Request__mach_port_allocate_full_t Request_mach_port_allocate_full;
-	__Request__task_set_port_space_t Request_task_set_port_space;
-	__Request__mach_port_get_srights_t Request_mach_port_get_srights;
-	__Request__mach_port_space_info_t Request_mach_port_space_info;
-	__Request__mach_port_dnrequest_info_t Request_mach_port_dnrequest_info;
-	__Request__mach_port_kernel_object_t Request_mach_port_kernel_object;
-	__Request__mach_port_insert_member_t Request_mach_port_insert_member;
-	__Request__mach_port_extract_member_t Request_mach_port_extract_member;
-	__Request__mach_port_get_context_t Request_mach_port_get_context;
-	__Request__mach_port_set_context_t Request_mach_port_set_context;
-	__Request__mach_port_kobject_t Request_mach_port_kobject;
-	__Request__mach_port_construct_t Request_mach_port_construct;
-	__Request__mach_port_destruct_t Request_mach_port_destruct;
-	__Request__mach_port_guard_t Request_mach_port_guard;
-	__Request__mach_port_unguard_t Request_mach_port_unguard;
-	__Request__mach_port_space_basic_info_t Request_mach_port_space_basic_info;
-	__Request__mach_port_guard_with_flags_t Request_mach_port_guard_with_flags;
-	__Request__mach_port_swap_guard_t Request_mach_port_swap_guard;
-	__Request__mach_port_kobject_description_t Request_mach_port_kobject_description;
-};
-#endif /* !__RequestUnion__mach_port_subsystem__defined */
-/* typedefs for all replies */
-
-#ifndef __Reply__mach_port_subsystem__defined
-#define __Reply__mach_port_subsystem__defined
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_ool_descriptor_t names;
-		mach_msg_ool_descriptor_t types;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		mach_msg_type_number_t namesCnt;
-		mach_msg_type_number_t typesCnt;
-	} __Reply__mach_port_names_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		mach_port_type_t ptype;
-	} __Reply__mach_port_type_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__mach_port_rename_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__mach_port_allocate_name_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		mach_port_name_t name;
-	} __Reply__mach_port_allocate_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__mach_port_destroy_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__mach_port_deallocate_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		mach_port_urefs_t refs;
-	} __Reply__mach_port_get_refs_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__mach_port_mod_refs_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		mach_port_seqno_t request_seqnop;
-		mach_msg_size_t msg_sizep;
-		mach_msg_id_t msg_idp;
-		mach_msg_type_number_t trailer_infopCnt;
-		char trailer_infop[68];
-	} __Reply__mach_port_peek_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__mach_port_set_mscount_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_ool_descriptor_t members;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		mach_msg_type_number_t membersCnt;
-	} __Reply__mach_port_get_set_status_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__mach_port_move_member_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t previous;
-		/* end of the kernel processed data */
-	} __Reply__mach_port_request_notification_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__mach_port_insert_right_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t poly;
-		/* end of the kernel processed data */
-	} __Reply__mach_port_extract_right_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__mach_port_set_seqno_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		mach_msg_type_number_t port_info_outCnt;
-		integer_t port_info_out[17];
-	} __Reply__mach_port_get_attributes_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__mach_port_set_attributes_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		mach_port_qos_t qos;
-		mach_port_name_t name;
-	} __Reply__mach_port_allocate_qos_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		mach_port_qos_t qos;
-		mach_port_name_t name;
-	} __Reply__mach_port_allocate_full_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__task_set_port_space_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		mach_port_rights_t srights;
-	} __Reply__mach_port_get_srights_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_ool_descriptor_t table_info;
-		mach_msg_ool_descriptor_t tree_info;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		ipc_info_space_t space_info;
-		mach_msg_type_number_t table_infoCnt;
-		mach_msg_type_number_t tree_infoCnt;
-	} __Reply__mach_port_space_info_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		unsigned dnr_total;
-		unsigned dnr_used;
-	} __Reply__mach_port_dnrequest_info_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		unsigned object_type;
-		unsigned object_addr;
-	} __Reply__mach_port_kernel_object_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__mach_port_insert_member_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__mach_port_extract_member_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		mach_port_context_t context;
-	} __Reply__mach_port_get_context_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__mach_port_set_context_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		natural_t object_type;
-		mach_vm_address_t object_addr;
-	} __Reply__mach_port_kobject_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		mach_port_name_t name;
-	} __Reply__mach_port_construct_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__mach_port_destruct_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__mach_port_guard_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__mach_port_unguard_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		ipc_info_space_basic_t basic_info;
-	} __Reply__mach_port_space_basic_info_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__mach_port_guard_with_flags_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__mach_port_swap_guard_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		natural_t object_type;
-		mach_vm_address_t object_addr;
-		mach_msg_type_number_t descriptionOffset; /* MiG doesn't use it */
-		mach_msg_type_number_t descriptionCnt;
-		char description[512];
-	} __Reply__mach_port_kobject_description_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-#endif /* !__Reply__mach_port_subsystem__defined */
-
-/* union of all replies */
-
-#ifndef __ReplyUnion__mach_port_subsystem__defined
-#define __ReplyUnion__mach_port_subsystem__defined
-union __ReplyUnion__mach_port_subsystem {
-	__Reply__mach_port_names_t Reply_mach_port_names;
-	__Reply__mach_port_type_t Reply_mach_port_type;
-	__Reply__mach_port_rename_t Reply_mach_port_rename;
-	__Reply__mach_port_allocate_name_t Reply_mach_port_allocate_name;
-	__Reply__mach_port_allocate_t Reply_mach_port_allocate;
-	__Reply__mach_port_destroy_t Reply_mach_port_destroy;
-	__Reply__mach_port_deallocate_t Reply_mach_port_deallocate;
-	__Reply__mach_port_get_refs_t Reply_mach_port_get_refs;
-	__Reply__mach_port_mod_refs_t Reply_mach_port_mod_refs;
-	__Reply__mach_port_peek_t Reply_mach_port_peek;
-	__Reply__mach_port_set_mscount_t Reply_mach_port_set_mscount;
-	__Reply__mach_port_get_set_status_t Reply_mach_port_get_set_status;
-	__Reply__mach_port_move_member_t Reply_mach_port_move_member;
-	__Reply__mach_port_request_notification_t Reply_mach_port_request_notification;
-	__Reply__mach_port_insert_right_t Reply_mach_port_insert_right;
-	__Reply__mach_port_extract_right_t Reply_mach_port_extract_right;
-	__Reply__mach_port_set_seqno_t Reply_mach_port_set_seqno;
-	__Reply__mach_port_get_attributes_t Reply_mach_port_get_attributes;
-	__Reply__mach_port_set_attributes_t Reply_mach_port_set_attributes;
-	__Reply__mach_port_allocate_qos_t Reply_mach_port_allocate_qos;
-	__Reply__mach_port_allocate_full_t Reply_mach_port_allocate_full;
-	__Reply__task_set_port_space_t Reply_task_set_port_space;
-	__Reply__mach_port_get_srights_t Reply_mach_port_get_srights;
-	__Reply__mach_port_space_info_t Reply_mach_port_space_info;
-	__Reply__mach_port_dnrequest_info_t Reply_mach_port_dnrequest_info;
-	__Reply__mach_port_kernel_object_t Reply_mach_port_kernel_object;
-	__Reply__mach_port_insert_member_t Reply_mach_port_insert_member;
-	__Reply__mach_port_extract_member_t Reply_mach_port_extract_member;
-	__Reply__mach_port_get_context_t Reply_mach_port_get_context;
-	__Reply__mach_port_set_context_t Reply_mach_port_set_context;
-	__Reply__mach_port_kobject_t Reply_mach_port_kobject;
-	__Reply__mach_port_construct_t Reply_mach_port_construct;
-	__Reply__mach_port_destruct_t Reply_mach_port_destruct;
-	__Reply__mach_port_guard_t Reply_mach_port_guard;
-	__Reply__mach_port_unguard_t Reply_mach_port_unguard;
-	__Reply__mach_port_space_basic_info_t Reply_mach_port_space_basic_info;
-	__Reply__mach_port_guard_with_flags_t Reply_mach_port_guard_with_flags;
-	__Reply__mach_port_swap_guard_t Reply_mach_port_swap_guard;
-	__Reply__mach_port_kobject_description_t Reply_mach_port_kobject_description;
-};
-#endif /* !__RequestUnion__mach_port_subsystem__defined */
-
-#ifndef subsystem_to_name_map_mach_port
-#define subsystem_to_name_map_mach_port \
-    { "mach_port_names", 3200 },\
-    { "mach_port_type", 3201 },\
-    { "mach_port_rename", 3202 },\
-    { "mach_port_allocate_name", 3203 },\
-    { "mach_port_allocate", 3204 },\
-    { "mach_port_destroy", 3205 },\
-    { "mach_port_deallocate", 3206 },\
-    { "mach_port_get_refs", 3207 },\
-    { "mach_port_mod_refs", 3208 },\
-    { "mach_port_peek", 3209 },\
-    { "mach_port_set_mscount", 3210 },\
-    { "mach_port_get_set_status", 3211 },\
-    { "mach_port_move_member", 3212 },\
-    { "mach_port_request_notification", 3213 },\
-    { "mach_port_insert_right", 3214 },\
-    { "mach_port_extract_right", 3215 },\
-    { "mach_port_set_seqno", 3216 },\
-    { "mach_port_get_attributes", 3217 },\
-    { "mach_port_set_attributes", 3218 },\
-    { "mach_port_allocate_qos", 3219 },\
-    { "mach_port_allocate_full", 3220 },\
-    { "task_set_port_space", 3221 },\
-    { "mach_port_get_srights", 3222 },\
-    { "mach_port_space_info", 3223 },\
-    { "mach_port_dnrequest_info", 3224 },\
-    { "mach_port_kernel_object", 3225 },\
-    { "mach_port_insert_member", 3226 },\
-    { "mach_port_extract_member", 3227 },\
-    { "mach_port_get_context", 3228 },\
-    { "mach_port_set_context", 3229 },\
-    { "mach_port_kobject", 3230 },\
-    { "mach_port_construct", 3231 },\
-    { "mach_port_destruct", 3232 },\
-    { "mach_port_guard", 3233 },\
-    { "mach_port_unguard", 3234 },\
-    { "mach_port_space_basic_info", 3235 },\
-    { "mach_port_guard_with_flags", 3237 },\
-    { "mach_port_swap_guard", 3238 },\
-    { "mach_port_kobject_description", 3239 }
-#endif
-
-#ifdef __AfterMigUserHeader
-__AfterMigUserHeader
-#endif /* __AfterMigUserHeader */
-
-#endif	 /* _mach_port_user_ */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/mach_right.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/mach_right.h
deleted file mode 100644
index 8f449e5f..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/mach_right.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (c) 2018 Apple Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-#ifndef __MACH_RIGHT_H
-#define __MACH_RIGHT_H
-
-#include <sys/cdefs.h>
-
-#if __has_include(<mach/mach_right_private.h>)
-#include <mach/mach_right_private.h>
-#endif
-
-#endif // __MACH_RIGHT_H
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/mach_syscalls.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/mach_syscalls.h
deleted file mode 100644
index 29399ce8..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/mach_syscalls.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (c) 2000-2004 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-
-#ifndef _MACH_MACH_SYSCALLS_H_
-#define _MACH_MACH_SYSCALLS_H_
-
-#include <mach/mach_traps.h>
-
-#endif  /* _MACH_MACH_SYSCALLS_H_ */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/mach_time.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/mach_time.h
deleted file mode 100644
index 2853aac3..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/mach_time.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * Copyright (c) 2001-2005 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-
-#ifndef _MACH_MACH_TIME_H_
-#define _MACH_MACH_TIME_H_
-
-#include <mach/mach_types.h>
-#include <sys/cdefs.h>
-#include <Availability.h>
-
-struct mach_timebase_info {
-	uint32_t        numer;
-	uint32_t        denom;
-};
-
-typedef struct mach_timebase_info       *mach_timebase_info_t;
-typedef struct mach_timebase_info       mach_timebase_info_data_t;
-
-__BEGIN_DECLS
-
-kern_return_t           mach_timebase_info(
-	mach_timebase_info_t    info);
-
-kern_return_t           mach_wait_until(
-	uint64_t                deadline);
-
-
-uint64_t                        mach_absolute_time(void);
-
-__OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_8_0)
-uint64_t                        mach_approximate_time(void);
-
-/*
- * like mach_absolute_time, but advances during sleep
- */
-__OSX_AVAILABLE(10.12) __IOS_AVAILABLE(10.0) __TVOS_AVAILABLE(10.0) __WATCHOS_AVAILABLE(3.0)
-uint64_t                        mach_continuous_time(void);
-
-/*
- * like mach_approximate_time, but advances during sleep
- */
-__OSX_AVAILABLE(10.12) __IOS_AVAILABLE(10.0) __TVOS_AVAILABLE(10.0) __WATCHOS_AVAILABLE(3.0)
-uint64_t                        mach_continuous_approximate_time(void);
-
-
-__END_DECLS
-
-#endif /* _MACH_MACH_TIME_H_ */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/mach_traps.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/mach_traps.h
deleted file mode 100644
index e38647c7..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/mach_traps.h
+++ /dev/null
@@ -1,303 +0,0 @@
-/*
- * Copyright (c) 2000-2019 Apple Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-/*
- * Mach Operating System
- * Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University
- * All Rights Reserved.
- *
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- */
-/*
- */
-/*
- *	Definitions of general Mach system traps.
- *
- *	These are the definitions as seen from user-space.
- *	The kernel definitions are in <mach/syscall_sw.h>.
- *	Kernel RPC functions are defined in <mach/mach_interface.h>.
- */
-
-#ifndef _MACH_MACH_TRAPS_H_
-#define _MACH_MACH_TRAPS_H_
-
-#include <stdint.h>
-
-#include <mach/std_types.h>
-#include <mach/mach_types.h>
-#include <mach/kern_return.h>
-#include <mach/port.h>
-#include <mach/vm_types.h>
-#include <mach/clock_types.h>
-
-#include <machine/endian.h>
-
-#include <sys/cdefs.h>
-
-__BEGIN_DECLS
-
-
-
-extern kern_return_t clock_sleep_trap(
-	mach_port_name_t clock_name,
-	sleep_type_t sleep_type,
-	int sleep_sec,
-	int sleep_nsec,
-	mach_timespec_t *wakeup_time);
-
-extern kern_return_t _kernelrpc_mach_vm_allocate_trap(
-	mach_port_name_t target,
-	mach_vm_offset_t *addr,
-	mach_vm_size_t size,
-	int flags);
-
-extern kern_return_t _kernelrpc_mach_vm_deallocate_trap(
-	mach_port_name_t target,
-	mach_vm_address_t address,
-	mach_vm_size_t size
-	);
-
-extern kern_return_t _kernelrpc_mach_vm_protect_trap(
-	mach_port_name_t target,
-	mach_vm_address_t address,
-	mach_vm_size_t size,
-	boolean_t set_maximum,
-	vm_prot_t new_protection
-	);
-
-extern kern_return_t _kernelrpc_mach_vm_map_trap(
-	mach_port_name_t target,
-	mach_vm_offset_t *address,
-	mach_vm_size_t size,
-	mach_vm_offset_t mask,
-	int flags,
-	vm_prot_t cur_protection
-	);
-
-extern kern_return_t _kernelrpc_mach_vm_purgable_control_trap(
-	mach_port_name_t target,
-	mach_vm_offset_t address,
-	vm_purgable_t control,
-	int *state);
-
-extern kern_return_t _kernelrpc_mach_port_allocate_trap(
-	mach_port_name_t target,
-	mach_port_right_t right,
-	mach_port_name_t *name
-	);
-
-
-extern kern_return_t _kernelrpc_mach_port_destroy_trap(
-	mach_port_name_t target,
-	mach_port_name_t name
-	);
-
-extern kern_return_t _kernelrpc_mach_port_deallocate_trap(
-	mach_port_name_t target,
-	mach_port_name_t name
-	);
-
-extern kern_return_t _kernelrpc_mach_port_mod_refs_trap(
-	mach_port_name_t target,
-	mach_port_name_t name,
-	mach_port_right_t right,
-	mach_port_delta_t delta
-	);
-
-extern kern_return_t _kernelrpc_mach_port_move_member_trap(
-	mach_port_name_t target,
-	mach_port_name_t member,
-	mach_port_name_t after
-	);
-
-extern kern_return_t _kernelrpc_mach_port_insert_right_trap(
-	mach_port_name_t target,
-	mach_port_name_t name,
-	mach_port_name_t poly,
-	mach_msg_type_name_t polyPoly
-	);
-
-extern kern_return_t _kernelrpc_mach_port_get_attributes_trap(
-	mach_port_name_t target,
-	mach_port_name_t name,
-	mach_port_flavor_t flavor,
-	mach_port_info_t port_info_out,
-	mach_msg_type_number_t *port_info_outCnt
-	);
-
-extern kern_return_t _kernelrpc_mach_port_insert_member_trap(
-	mach_port_name_t target,
-	mach_port_name_t name,
-	mach_port_name_t pset
-	);
-
-extern kern_return_t _kernelrpc_mach_port_extract_member_trap(
-	mach_port_name_t target,
-	mach_port_name_t name,
-	mach_port_name_t pset
-	);
-
-extern kern_return_t _kernelrpc_mach_port_construct_trap(
-	mach_port_name_t target,
-	mach_port_options_t *options,
-	uint64_t context,
-	mach_port_name_t *name
-	);
-
-extern kern_return_t _kernelrpc_mach_port_destruct_trap(
-	mach_port_name_t target,
-	mach_port_name_t name,
-	mach_port_delta_t srdelta,
-	uint64_t guard
-	);
-
-extern kern_return_t _kernelrpc_mach_port_guard_trap(
-	mach_port_name_t target,
-	mach_port_name_t name,
-	uint64_t guard,
-	boolean_t strict
-	);
-
-extern kern_return_t _kernelrpc_mach_port_unguard_trap(
-	mach_port_name_t target,
-	mach_port_name_t name,
-	uint64_t guard
-	);
-
-extern kern_return_t mach_generate_activity_id(
-	mach_port_name_t target,
-	int count,
-	uint64_t *activity_id
-	);
-
-extern kern_return_t macx_swapon(
-	uint64_t filename,
-	int flags,
-	int size,
-	int priority);
-
-extern kern_return_t macx_swapoff(
-	uint64_t filename,
-	int flags);
-
-extern kern_return_t macx_triggers(
-	int hi_water,
-	int low_water,
-	int flags,
-	mach_port_t alert_port);
-
-extern kern_return_t macx_backing_store_suspend(
-	boolean_t suspend);
-
-extern kern_return_t macx_backing_store_recovery(
-	int pid);
-
-extern boolean_t swtch_pri(int pri);
-
-extern boolean_t swtch(void);
-
-extern kern_return_t thread_switch(
-	mach_port_name_t thread_name,
-	int option,
-	mach_msg_timeout_t option_time);
-
-extern mach_port_name_t task_self_trap(void);
-
-extern kern_return_t host_create_mach_voucher_trap(
-	mach_port_name_t host,
-	mach_voucher_attr_raw_recipe_array_t recipes,
-	int recipes_size,
-	mach_port_name_t *voucher);
-
-extern kern_return_t mach_voucher_extract_attr_recipe_trap(
-	mach_port_name_t voucher_name,
-	mach_voucher_attr_key_t key,
-	mach_voucher_attr_raw_recipe_t recipe,
-	mach_msg_type_number_t *recipe_size);
-
-extern kern_return_t _kernelrpc_mach_port_type_trap(
-	ipc_space_t task,
-	mach_port_name_t name,
-	mach_port_type_t *ptype);
-
-extern kern_return_t _kernelrpc_mach_port_request_notification_trap(
-	ipc_space_t task,
-	mach_port_name_t name,
-	mach_msg_id_t msgid,
-	mach_port_mscount_t sync,
-	mach_port_name_t notify,
-	mach_msg_type_name_t notifyPoly,
-	mach_port_name_t *previous);
-
-/*
- *	Obsolete interfaces.
- */
-
-extern kern_return_t task_for_pid(
-	mach_port_name_t target_tport,
-	int pid,
-	mach_port_name_t *t);
-
-extern kern_return_t task_name_for_pid(
-	mach_port_name_t target_tport,
-	int pid,
-	mach_port_name_t *tn);
-
-extern kern_return_t pid_for_task(
-	mach_port_name_t t,
-	int *x);
-
-extern kern_return_t debug_control_port_for_pid(
-	mach_port_name_t target_tport,
-	int pid,
-	mach_port_name_t *t);
-
-
-__END_DECLS
-
-#endif  /* _MACH_MACH_TRAPS_H_ */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/mach_types.defs b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/mach_types.defs
deleted file mode 100644
index b8dddaa3..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/mach_types.defs
+++ /dev/null
@@ -1,618 +0,0 @@
-/*
- * Copyright (c) 2000-2016 Apple Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- * 
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- * 
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- * 
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- * 
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-/* 
- * Mach Operating System
- * Copyright (c) 1991,1990,1989,1988 Carnegie Mellon University
- * All Rights Reserved.
- * 
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- * 
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- * 
- * Carnegie Mellon requests users of this software to return to
- * 
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- * 
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- */
-/*
- * NOTICE: This file was modified by McAfee Research in 2004 to introduce
- * support for mandatory and extensible security protections.  This notice
- * is included in support of clause 2.2 (b) of the Apple Public License,
- * Version 2.0.
- */
-/*
- */
-/*
- *	Mach kernel interface type declarations
- */
-
-#ifndef	_MACH_MACH_TYPES_DEFS_
-#define _MACH_MACH_TYPES_DEFS_
-
-
-#include <mach/std_types.defs>
-
-type memory_object_offset_t 	= uint64_t;
-type memory_object_size_t 	= uint64_t;
-type memory_object_cluster_size_t = uint32_t;
-type memory_object_fault_info_t = array[16] of integer_t;
-
-
-type mach_port_status_t = struct[10] of integer_t;	/* obsolete */
-type mach_port_info_ext_t = struct[17] of integer_t;
-
-		/* mach_port_info_t: can hold either a
-		 * mach_port_status_t (9 ints) or a
-		 * mach_port_limits_t (1 int) or a 
-		 * mach_port_info_ext_t (17 ints). If new flavors of
-		 * mach_port_{get,set}_attributes are added, the size of
-		 * this array may have to be increased. (See mach/port.h)
-		 */
-type mach_port_flavor_t 	= int;
-type mach_port_info_t		= array[*:17] of integer_t;
-
-     		/*
-		 * mach_msg_max_trailer_t: can hold
-		 * mach_msg_trailer_type_t (1 int)
-		 * mach_msg_trailer_size_t (1 int)
-		 * mach_port_seqno_t (1 int)
-		 * security_token_t (2 ints)
-		 * audit_token_t (8 ints)
-		 * mach_port_context_t (2 ints)
-		 * msgh_ad (1 int)
-		 * msg_labels_t (1 int)
-		 */
-type mach_msg_trailer_type_t = int;
-type mach_msg_trailer_info_t	= array[*:68] of char;
-
-type task_t = mach_port_t
-#if	KERNEL_SERVER
-		intran: task_t convert_port_to_task(mach_port_t)
-		outtran: mach_port_t convert_task_to_port(task_t)
-		destructor: task_deallocate(task_t)
-#endif	/* KERNEL_SERVER */
-		;
-
-type task_name_t = mach_port_t
-#if	KERNEL_SERVER
-		intran: task_name_t convert_port_to_task_name(mach_port_t)
-		outtran: mach_port_t convert_task_name_to_port(task_name_t)
-		destructor: task_name_deallocate(task_name_t)
-#endif	/* KERNEL_SERVER */
-		;
-
-type task_inspect_t = mach_port_t
-#if	KERNEL_SERVER
-		intran: task_inspect_t convert_port_to_task_inspect(mach_port_t)
-		outtran: mach_port_t convert_task_inspect_to_port(task_inspect_t)
-		destructor: task_inspect_deallocate(task_inspect_t)
-#endif	/* KERNEL_SERVER */
-		;
-
-type thread_t = mach_port_t
-#if	KERNEL_SERVER
-		intran: thread_t convert_port_to_thread(mach_port_t)
-		outtran: mach_port_t convert_thread_to_port(thread_t)
-		destructor: thread_deallocate(thread_t)
-#endif	/* KERNEL_SERVER */
-		;
-
-type thread_inspect_t = mach_port_t
-#if	KERNEL_SERVER
-		intran: thread_inspect_t convert_port_to_thread_inspect(mach_port_t)
-		outtran: mach_port_t convert_thread_inspect_to_port(thread_inspect_t)
-		destructor: thread_inspect_deallocate(thread_inspect_t)
-#endif	/* KERNEL_SERVER */
-		;
-
-type thread_act_t = mach_port_t
-#if	KERNEL_SERVER
-		intran: thread_act_t convert_port_to_thread(mach_port_t)
-		outtran: mach_port_t convert_thread_to_port(thread_act_t)
-		destructor: thread_deallocate(thread_act_t)
-#endif	/* KERNEL_SERVER */
-		;
-
-type thread_act_consume_ref_t = mach_port_move_send_t
-		cusertype: thread_act_t
-#if	KERNEL_SERVER
-		intran: thread_act_t convert_port_to_thread(mach_port_t)
-		destructor: thread_deallocate(thread_act_t)
-#endif	/* KERNEL_SERVER */
-		;
-
-type suid_cred_path_t = c_string[*:1024];
-type suid_cred_uid_t = uint32_t;
-type suid_cred_t = mach_port_t
-#if	KERNEL_SERVER
-		outtran: mach_port_t convert_suid_cred_to_port(suid_cred_t)
-#endif	/* KERNEL_SERVER */
-		;
-
-
-		/* thread_state_t: This inline array can hold
-		 * a machine-dependent amount of data, defined in
-		 * mach/machine/???? (currently THREAD_STATE_MAX,
-		 * in mach/thread_state.h)
-		 */
-#include <mach/machine/thread_state.h>
-type thread_state_flavor_t	= int;
-type thread_state_t		= array[*:THREAD_STATE_MAX] of natural_t;
-
-type task_array_t = ^array[] of task_t;
-type thread_array_t = ^array[] of thread_t;
-type thread_act_array_t = ^array[] of thread_act_t;
-type act_params_t = array[6] of int;
-
-type vm_map_t = mach_port_t
-#if	KERNEL_SERVER
-		intran: vm_map_t convert_port_to_map(mach_port_t)
-		destructor: vm_map_deallocate(vm_map_t)
-#endif	/* KERNEL_SERVER */
-		;
-
-type vm_task_entry_t = mach_port_t
-		cusertype: vm_map_t
-#if	KERNEL_SERVER
-		intran: vm_map_t convert_port_entry_to_map(mach_port_t)
-		destructor: vm_map_deallocate(vm_map_t)
-#endif	/* KERNEL_SERVER */
-		;
-
-type ipc_space_t = mach_port_t
-#if	KERNEL_SERVER
-		intran: ipc_space_t convert_port_to_space(mach_port_t)
-		destructor: space_deallocate(ipc_space_t)
-#endif	/* KERNEL_SERVER */
-		;
-
-type ipc_space_inspect_t = mach_port_t
-#if	KERNEL_SERVER
-		intran: ipc_space_inspect_t convert_port_to_space_inspect(mach_port_t)
-		destructor: space_inspect_deallocate(ipc_space_inspect_t)
-#endif	/* KERNEL_SERVER */
-		;
-
-type arcade_register_t = mach_port_t
-#if	KERNEL_SERVER
-		intran: arcade_register_t convert_port_to_arcade_register(mach_port_t)
-#endif	/* KERNEL_SERVER */
-		;
-
-type vm_prot_t = int;
-type vm_inherit_t = int;
-type vm_purgable_t = int;
-type xxx_vm_statistics_data_t = struct[13] of integer_t;
-type vm_behavior_t = int;
-type vm_statistics_data_t = struct[15] of integer_t;
-type vm_machine_attribute_t = int;
-type vm_machine_attribute_val_t = int;
-type vm_sync_t = int;
-
-		/* thread_info_t: this inline array can hold any of:
-		 * thread_basic_info_t (10 ints)
-		 * policy_timeshare_info_t (5 ints)
-		 * policy_fifo_info_t (4 ints)
-		 * policy_rr_info_t (5 ints)
-		 * thread_extended_info (12 ints + 64 chars)
-		 * if other thread_info flavors are added, this
-		 * definition may need to be changed. (See
-		 * mach/thread_info.h and mach/policy.h) */
-type thread_flavor_t		= int;
-type thread_info_t		= array[*:32] of integer_t;
-
-type thread_policy_flavor_t	= natural_t;
-type thread_policy_t		= array[*:16] of integer_t;
-
-		/* task_info_t: this inline array can hold any of:
-		 * task_basic_info_32_t (8 ints)
-		 * task_basic_info_64_t (10 ints)
-		 * task_events_info_t (8 ints)
-		 * task_thread_times_info_t (4 ints)
-		 * policy_timeshare_info_t (5 ints)
-		 * policy_fifo_info_t (4 ints)
-		 * policy_rr_info_t (5 ints)
-		 * task security token (2 ints)
-		 * task audit token (8 ints)
-		 * dyld info (2 64-bit ints and 1 int)
-		 * task_extmod_info_t (8 64-bit ints)
-		 * task_basic_info_64_2_t
-		 * mach_task_basic_info_t (12 ints)
-		 * task_power_info_t (18 ints)
-		 * task_vm_info_t (87 ints)
-		 * If other task_info flavors are added, this
-		 * definition may need to be changed. (See
-		 * mach/task_info.h and mach/policy.h) */
-type task_flavor_t		= int;
-type task_info_t		= array[*:87] of integer_t;
-
-type task_purgable_info_t	= struct[68] of integer_t;
-
-type task_policy_flavor_t	= natural_t;
-type task_policy_t		= array[*:16] of integer_t;
-
-type task_inspect_flavor_t = natural_t;
-type task_inspect_info_t = array[*:4] of integer_t;
-
-type task_exc_guard_behavior_t = uint32_t;
-
-type mem_entry_name_port_t = mach_port_t
-#if     KERNEL_SERVER
-		intran: mem_entry_name_port_t null_conversion(mach_port_t)
-		outtran: mach_port_t null_conversion(mem_entry_name_port_t)
-#endif  /* KERNEL_SERVER */
-		;
-
-type mem_entry_name_port_move_send_t = mach_port_move_send_t
-	cusertype: mem_entry_name_port_t
-#if     KERNEL_SERVER
-		intran: mem_entry_name_port_t null_conversion(mach_port_t)
-		outtran: mach_port_t null_conversion(mem_entry_name_port_t)
-#endif  /* KERNEL_SERVER */
-		;
-
-type memory_object_default_t = mach_port_t
-		;
- 
-type memory_object_t = mach_port_t
-		;
-
-
-type memory_object_control_t = mach_port_t
-		;
-
-type memory_object_name_t = mach_port_t
-		ctype: mach_port_t
-		;
-
-
-type memory_object_copy_strategy_t = int;
-type memory_object_return_t = int;
-
-type machine_info_data_t = struct[5] of integer_t;
-type machine_slot_data_t = struct[8] of integer_t;
-
-type host_t = mach_port_t
-#if	KERNEL_SERVER
-		intran: host_t convert_port_to_host(mach_port_t)
-		outtran: mach_port_t convert_host_to_port(host_t)
-#endif	/* KERNEL_SERVER */
-		;
-
-type host_priv_t = mach_port_t
-#if	KERNEL_SERVER
-		intran: host_priv_t convert_port_to_host_priv(mach_port_t)
-#endif	/* KERNEL_SERVER */
-		;
-
-type host_security_t = mach_port_t
-#if	KERNEL_SERVER
-		intran: host_security_t convert_port_to_host_security(mach_port_t)
-#endif	/* KERNEL_SERVER */
-		;
-
-		/* 
-		 * host_info_t: variable-sized inline array that can contain:
-		 * 
-		 * 	host_basic_info_old_t (5 ints)
-		 * 	host_basic_info_t (12 ints)
-		 * 	host_sched_info_t (2 ints)
-		 * 	kernel_resource_sizes_t (5 ints)
-		 * 	host_load_info_t (6 ints)
-		 * 	vm_statistics32_t (15 ints)
-		 * 	host_purgable_info_t (68 ints)
-		 *	host_expired_task_info uses a task_power_info (18 ints)
-		 * 
-		 * If other host_info flavors are added, this definition may
-		 * need to be changed. (See mach/{host_info,vm_statistics}.h)
-		 */
-type host_flavor_t		= int;
-type host_info_t 		= array[*:68] of integer_t;
-		/* 
-		 * host_info64_t: variable-sized inline array that can contain:
-		 * 
-		 *	vm_statistics_t (6 ints and 9 longs)
-		 *	vm_extmod_statistics_t (6 64-bit ints)
-		 */
-type host_info64_t		= array[*:256] of integer_t;
-
-type processor_t = mach_port_t
-#if	KERNEL_SERVER
-		intran: processor_t convert_port_to_processor(mach_port_t)
-		outtran: mach_port_t convert_processor_to_port(processor_t)
-#endif	/* KERNEL_SERVER */
-		;
-
-type processor_array_t = ^array[] of processor_t;
-
-		/*
-		 * processor_info_t: variable-sized inline array that can
-		 * contain:
-		 *
-		 * - processor_basic_info_t:    (5 ints)
-		 * - processor_cpu_load_info_t: (4 ints)
-		 * - processor_machine_info_t:  (12 ints)
-		 * - processor_cpu_stat_t:      (10 ints)
-		 * - processor_cpu_stat64_t:    (20 ints)
-		 *
-		 * If other processor_info flavors are added, this definition
-		 * may need to be changed.
-		 *
-		 * See mach/processor_info.h and mach/arm/processor_info.h.
-		 */
-
-type processor_flavor_t     = int;
-type processor_info_t       = array[*:20] of integer_t;
-type processor_info_array_t = ^array[] of integer_t;
-
-type processor_set_t = mach_port_t
-#if	KERNEL_SERVER
-		intran: processor_set_t convert_port_to_pset(mach_port_t)
-		outtran: mach_port_t convert_pset_to_port(processor_set_t)
-		destructor: pset_deallocate(processor_set_t)
-#endif	/* KERNEL_SERVER */
-		;
-
-type processor_set_array_t = ^array[] of processor_set_t;
-
-type processor_set_name_t = mach_port_t
-#if	KERNEL_SERVER
-		intran: processor_set_name_t convert_port_to_pset_name(mach_port_t)
-		outtran: mach_port_t convert_pset_name_to_port(processor_set_name_t)
-		destructor: pset_deallocate(processor_set_name_t)
-#endif	/* KERNEL_SERVER */
-		;
-
-type processor_set_name_array_t = ^array[] of processor_set_name_t;
-
-		/* processor_set_info_t: variable-size inline array
-		 * that can hold:
-		 * processor_set_basic_info (5 ints)
-		 * processor_set_load_info (4 ints)
-		 * policy_timeshare_base_t (1 int)
-		 * policy_fifo_base_t (1 int)
-		 * policy_rr_base_t (1 int)
-		 * policy_timeshare_base_t (1 int)
-		 * policy_fifo_base_t (1 int)
-		 * policy_rr_base_t (1 int)
-		 * policy_t (1 int)
-		 * If other flavors are added, this definition may
-		 * need to be changed. (see mach/processor.h) */
-type processor_set_flavor_t	= int;
-type processor_set_info_t	= array[*:5] of integer_t;	
-
-type bootstrap_t = mach_port_t;
-
-type kernel_version_t           = c_string[*:512];
-type kernel_boot_info_t         = c_string[*:4096];
-
-type time_value_t = struct[2] of integer_t;
-
-type mach_port_qos_t = struct[2] of integer_t;
-
-type mach_port_options_t = struct[3] of uint64_t;
-type mach_port_options_ptr_t = ^ mach_port_options_t;
-
-type emulation_vector_t		= ^array[] of vm_offset_t;
-
-type inline_existence_map_t	= array[*:512] of char;
-
-type policy_t			= int;
-		/* policy_info_t: variable-size inline array. Can hold:
-		 * policy_timeshare_info_t (5 ints)
-		 * policy_fifo_info_t (4 ints)
-		 * policy_rr_info_t (5 ints) */
-type policy_base_t		= array[*:5] of integer_t;
-type policy_info_t		= array[*:2] of integer_t;
-type policy_limit_t		= array[*:1] of integer_t;
-
-type ledger_t = mach_port_t
-#if	KERNEL_SERVER
-		intran: ledger_t convert_port_to_ledger(mach_port_t)
-		outtran: mach_port_t convert_ledger_to_port(ledger_t)
-#endif	/* KERNEL_SERVER */
-                ;
-
-type ledger_array_t	 	= ^array[] of ledger_t;
-type ledger_item_t		= integer_t;
-     				  /* DEPRECATED */
-
-type ledger_amount_t		= int64_t;
-
-type security_token_t		= struct[2] of uint32_t;
-type audit_token_t		= struct[8] of uint32_t;
-
-type msg_labels_t = mach_port_t;
-
-		/* memory_object_info_t: variable-size inline array:
-		 * memory_object_attr_info_t (5 ints)
-		 * XXX actually it's 6 ints temporarily (object_ready!)
-		 * memory_object_behave_info_t (4 ints)
-		 * memory_object_perf_info_t (2 ints)
-		 * old_memory_object_attr_info_t (3 ints)
-		 * If other flavors are added, this definition may
-		 * need to be changed. (see mach/memory_object.h) */
-type memory_object_flavor_t	= int;
-type memory_object_info_t	= array[*:6] of int;
-
-		/* vm_region_info_t: variable-size inline array that can hold:
-		 * vm_region_basic_info_t (8 ints)
-		 * If other flavors are added, this definition may
-		 * need to be changed. (see mach/vm_region.h) */
-type vm_region_flavor_t		= int;
-type vm_region_info_t		= array[*:10] of int;
-type vm_region_recurse_info_t	= array[*:19] of int;
-
-type vm_page_info_flavor_t	= int;
-type vm_page_info_t		= array[*:32] of int;
-
-type mach_vm_read_entry_t = array[512] of mach_vm_offset_t;
-type vm_read_entry_t = array[512] of vm_offset_t;
-#ifdef VM32_SUPPORT
-type vm32_read_entry_t = array[512] of vm32_offset_t;
-#endif
-
-type exception_mask_t		= int;
-type exception_behavior_t	= int;
-
-type    exception_handler_t = mach_port_t;
-
-type	exception_handler_array_t	=
-			array[*:32] of exception_handler_t;
-
-type	exception_behavior_array_t	=
-			array[*:32] of exception_behavior_t;
-
-type	exception_flavor_array_t	=
-			array[*:32] of thread_state_flavor_t;
-
-type	exception_mask_array_t	=
-			array[*:32] of exception_mask_t;
-
-type semaphore_t = mach_port_t
-#if	KERNEL_SERVER
-		intran: semaphore_t convert_port_to_semaphore(mach_port_t)
-		outtran: mach_port_t convert_semaphore_to_port(semaphore_t)
-		destructor: semaphore_dereference(semaphore_t)
-#endif	/* KERNEL_SERVER */
-		;
-
-type semaphore_consume_ref_t = mach_port_move_send_t
-		cusertype: semaphore_t
-#if	KERNEL_SERVER
-		intran: semaphore_t convert_port_to_semaphore(mach_port_t)
-		outtran: mach_port_t convert_semaphore_to_port(semaphore_t)
-#endif	/* KERNEL_SERVER */
-		;
-
-type lock_set_t = mach_port_t
-#if	KERNEL_SERVER
-		intran: lock_set_t convert_port_to_lock_set(mach_port_t)
-		outtran: mach_port_t convert_lock_set_to_port(lock_set_t)
-		destructor: lock_set_dereference(lock_set_t)
-#endif	/* KERNEL_SERVER */
-		;
-
-type task_suspension_token_t = mach_port_move_send_once_t
-#if	KERNEL_SERVER
-		intran: task_suspension_token_t convert_port_to_task_suspension_token(mach_port_t)
-		outtran: mach_port_t convert_task_suspension_token_to_port(task_suspension_token_t)
-#endif	/* KERNEL_SERVER */
-		;
-
-type vfs_path_t = c_string[4096];
-type nspace_path_t = c_string[1024];	/* 1024 == PATH_MAX */
-
-/* public voucher types */
-
-/* Mach voucher object */
-type mach_voucher_t = mach_port_t;
-type mach_voucher_name_t = mach_port_name_t;
-
-type mach_voucher_attr_manager_t = mach_port_t;
-type mach_voucher_attr_control_t = mach_port_t;
-
-/* IPC voucher internal object */
-type ipc_voucher_t = mach_port_t
-#if	KERNEL_SERVER
-		intran: ipc_voucher_t convert_port_to_voucher(mach_port_t)
-		outtran: mach_port_t convert_voucher_to_port(ipc_voucher_t)
-		destructor: ipc_voucher_release(ipc_voucher_t)
-#endif	/* KERNEL_SERVER */
-	        ;
-
-/* IPC voucher attribute control internal object */
-type ipc_voucher_attr_control_t = mach_port_t
-#if	KERNEL_SERVER
-		intran: ipc_voucher_attr_control_t convert_port_to_voucher_attr_control(mach_port_t)
-		outtran: mach_port_t convert_voucher_attr_control_to_port(ipc_voucher_attr_control_t)
-		destructor: ipc_voucher_attr_control_release(ipc_voucher_attr_control_t)
-#endif	/* KERNEL_SERVER */
-                ;
-
-type mach_voucher_attr_key_t = uint32_t;
-
-type mach_voucher_attr_command_t = uint32_t;
-type mach_voucher_attr_recipe_command_t = uint32_t;
-
-type mach_voucher_attr_content_size_t = uint32_t;
-type mach_voucher_attr_content_t = array[*:4096] of uint8_t;
-type mach_voucher_attr_content_array_t = array[*:5120] of uint8_t;
-
-type mach_voucher_attr_raw_recipe_size_t = uint32_t;
-type mach_voucher_attr_raw_recipe_t = array[*:4096] of uint8_t;
-type mach_voucher_attr_raw_recipe_array_t = array[*:5120] of uint8_t;
-
-type mach_voucher_selector_t = uint32_t;
-
-type mach_voucher_attr_value_handle_t = uint64_t;
-type mach_voucher_attr_value_handle_array_t = array[*:4] of mach_voucher_attr_value_handle_t;
-type mach_voucher_attr_value_reference_t = uint32_t;
-
-/* kernel module loader */
-type kmod_t = int;
-type kmod_control_flavor_t = int;
-
-type kmod_args_t = ^array[] of MACH_MSG_TYPE_BYTE
-	ctype: kmod_args_t;
-
-type io_master_t = mach_port_t;
-type UNDServerRef = mach_port_t;
-
-/* These must be kept in sync with definitions in osfmk/mach/dyld_kernel.h */
-type dyld_kernel_image_info_t = struct[40] of MACH_MSG_TYPE_BYTE;
-type dyld_kernel_image_info_array_t = ^array[] of dyld_kernel_image_info_t;
-type dyld_kernel_process_info_t = struct[64] of MACH_MSG_TYPE_BYTE;
-
-#if KERNEL_SERVER
-
-simport <kern/ipc_mig.h>;	/* pick up kernel-specific MIG things */
-
-simport <kern/suid_cred.h>;
-#endif /* KERNEL_SERVER */
-
-import <mach/mig.h>;
-import <mach/mach_types.h>;
-
-#endif	/* _MACH_MACH_TYPES_DEFS_ */
-
-/* vim: set ft=c : */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/mach_types.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/mach_types.h
deleted file mode 100644
index bd4bc342..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/mach_types.h
+++ /dev/null
@@ -1,254 +0,0 @@
-/*
- * Copyright (c) 2000-2018 Apple Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-/*
- * Mach Operating System
- * Copyright (c) 1991,1990,1989,1988 Carnegie Mellon University
- * All Rights Reserved.
- *
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- */
-/*
- */
-/*
- * NOTICE: This file was modified by SPARTA, Inc. in 2005 to introduce
- * support for mandatory and extensible security protections.  This notice
- * is included in support of clause 2.2 (b) of the Apple Public License,
- * Version 2.0.
- */
-/*
- *	File:	mach/mach_types.h
- *	Author:	Avadis Tevanian, Jr., Michael Wayne Young
- *	Date:	1986
- *
- *	Mach external interface definitions.
- *
- */
-
-#ifndef _MACH_MACH_TYPES_H_
-#define _MACH_MACH_TYPES_H_
-
-#include <stdint.h>
-
-#include <sys/cdefs.h>
-
-#include <mach/host_info.h>
-#include <mach/host_notify.h>
-#include <mach/host_special_ports.h>
-#include <mach/machine.h>
-#include <mach/machine/vm_types.h>
-#include <mach/memory_object_types.h>
-#include <mach/message.h>
-#include <mach/exception_types.h>
-#include <mach/port.h>
-#include <mach/mach_voucher_types.h>
-#include <mach/processor_info.h>
-#include <mach/task_info.h>
-#include <mach/task_inspect.h>
-#include <mach/task_policy.h>
-#include <mach/task_special_ports.h>
-#include <mach/thread_info.h>
-#include <mach/thread_policy.h>
-#include <mach/thread_special_ports.h>
-#include <mach/thread_status.h>
-#include <mach/time_value.h>
-#include <mach/clock_types.h>
-#include <mach/vm_attributes.h>
-#include <mach/vm_inherit.h>
-#include <mach/vm_purgable.h>
-#include <mach/vm_behavior.h>
-#include <mach/vm_prot.h>
-#include <mach/vm_statistics.h>
-#include <mach/vm_sync.h>
-#include <mach/vm_types.h>
-#include <mach/vm_region.h>
-#include <mach/kmod.h>
-#include <mach/dyld_kernel.h>
-
-
-/*
- * If we are not in the kernel, then these will all be represented by
- * ports at user-space.
- */
-typedef mach_port_t             task_t;
-typedef mach_port_t             task_name_t;
-typedef mach_port_t             task_inspect_t;
-typedef mach_port_t             task_suspension_token_t;
-typedef mach_port_t             thread_t;
-typedef mach_port_t             thread_act_t;
-typedef mach_port_t             thread_inspect_t;
-typedef mach_port_t             ipc_space_t;
-typedef mach_port_t             ipc_space_inspect_t;
-typedef mach_port_t             coalition_t;
-typedef mach_port_t             host_t;
-typedef mach_port_t             host_priv_t;
-typedef mach_port_t             host_security_t;
-typedef mach_port_t             processor_t;
-typedef mach_port_t             processor_set_t;
-typedef mach_port_t             processor_set_control_t;
-typedef mach_port_t             semaphore_t;
-typedef mach_port_t             lock_set_t;
-typedef mach_port_t             ledger_t;
-typedef mach_port_t             alarm_t;
-typedef mach_port_t             clock_serv_t;
-typedef mach_port_t             clock_ctrl_t;
-typedef mach_port_t             arcade_register_t;
-typedef mach_port_t             suid_cred_t;
-
-
-/*
- * These aren't really unique types.  They are just called
- * out as unique types at one point in history.  So we list
- * them here for compatibility.
- */
-typedef processor_set_t         processor_set_name_t;
-
-/*
- * These types are just hard-coded as ports
- */
-typedef mach_port_t             clock_reply_t;
-typedef mach_port_t             bootstrap_t;
-typedef mach_port_t             mem_entry_name_port_t;
-typedef mach_port_t             exception_handler_t;
-typedef exception_handler_t     *exception_handler_array_t;
-typedef mach_port_t             vm_task_entry_t;
-typedef mach_port_t             io_master_t;
-typedef mach_port_t             UNDServerRef;
-
-/*
- * Mig doesn't translate the components of an array.
- * For example, Mig won't use the thread_t translations
- * to translate a thread_array_t argument.  So, these definitions
- * are not completely accurate at the moment for other kernel
- * components.
- */
-typedef task_t                  *task_array_t;
-typedef thread_t                *thread_array_t;
-typedef processor_set_t         *processor_set_array_t;
-typedef processor_set_t         *processor_set_name_array_t;
-typedef processor_t             *processor_array_t;
-typedef thread_act_t            *thread_act_array_t;
-typedef ledger_t                *ledger_array_t;
-
-/*
- * However the real mach_types got declared, we also have to declare
- * types with "port" in the name for compatability with the way OSF
- * had declared the user interfaces at one point.  Someday these should
- * go away.
- */
-typedef task_t                  task_port_t;
-typedef task_array_t            task_port_array_t;
-typedef thread_t                thread_port_t;
-typedef thread_array_t          thread_port_array_t;
-typedef ipc_space_t             ipc_space_port_t;
-typedef host_t                  host_name_t;
-typedef host_t                  host_name_port_t;
-typedef processor_set_t         processor_set_port_t;
-typedef processor_set_t         processor_set_name_port_t;
-typedef processor_set_array_t   processor_set_name_port_array_t;
-typedef processor_set_t         processor_set_control_port_t;
-typedef processor_t             processor_port_t;
-typedef processor_array_t       processor_port_array_t;
-typedef thread_act_t            thread_act_port_t;
-typedef thread_act_array_t      thread_act_port_array_t;
-typedef semaphore_t             semaphore_port_t;
-typedef lock_set_t              lock_set_port_t;
-typedef ledger_t                ledger_port_t;
-typedef ledger_array_t          ledger_port_array_t;
-typedef alarm_t                 alarm_port_t;
-typedef clock_serv_t            clock_serv_port_t;
-typedef clock_ctrl_t            clock_ctrl_port_t;
-typedef exception_handler_t     exception_port_t;
-typedef exception_handler_array_t exception_port_arrary_t;
-typedef char vfs_path_t[4096];
-typedef char nspace_path_t[1024]; /* 1024 == PATH_MAX */
-typedef char suid_cred_path_t[1024];
-typedef uint32_t suid_cred_uid_t;
-
-#define TASK_NULL               ((task_t) 0)
-#define TASK_NAME_NULL          ((task_name_t) 0)
-#define TASK_INSPECT_NULL               ((task_inspect_t) 0)
-#define THREAD_NULL             ((thread_t) 0)
-#define THREAD_INSPECT_NULL     ((thread_inspect_t) 0)
-#define TID_NULL                ((uint64_t) 0)
-#define THR_ACT_NULL            ((thread_act_t) 0)
-#define IPC_SPACE_NULL          ((ipc_space_t) 0)
-#define IPC_SPACE_INSPECT_NULL  ((ipc_space_inspect_t) 0)
-#define COALITION_NULL          ((coalition_t) 0)
-#define HOST_NULL               ((host_t) 0)
-#define HOST_PRIV_NULL          ((host_priv_t) 0)
-#define HOST_SECURITY_NULL      ((host_security_t) 0)
-#define PROCESSOR_SET_NULL      ((processor_set_t) 0)
-#define PROCESSOR_NULL          ((processor_t) 0)
-#define SEMAPHORE_NULL          ((semaphore_t) 0)
-#define LOCK_SET_NULL           ((lock_set_t) 0)
-#define LEDGER_NULL             ((ledger_t) 0)
-#define ALARM_NULL              ((alarm_t) 0)
-#define CLOCK_NULL              ((clock_t) 0)
-#define UND_SERVER_NULL         ((UNDServerRef) 0)
-#define ARCADE_REG_NULL         ((arcade_register_t) 0)
-#define SUID_CRED_NULL         ((suid_cred_t) 0)
-
-/* DEPRECATED */
-typedef natural_t       ledger_item_t;
-#define LEDGER_ITEM_INFINITY    ((ledger_item_t) (~0))
-
-typedef int64_t                 ledger_amount_t;
-#define LEDGER_LIMIT_INFINITY   ((ledger_amount_t)((1ULL << 63) - 1))
-
-typedef mach_vm_offset_t        *emulation_vector_t;
-typedef char                    *user_subsystem_t;
-
-typedef char                    *labelstr_t;
-/*
- *	Backwards compatibility, for those programs written
- *	before mach/{std,mach}_types.{defs,h} were set up.
- */
-#include <mach/std_types.h>
-
-#endif  /* _MACH_MACH_TYPES_H_ */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/mach_vm.defs b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/mach_vm.defs
deleted file mode 100644
index 17a357e4..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/mach_vm.defs
+++ /dev/null
@@ -1,542 +0,0 @@
-/*
- * Copyright (c) 2004 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- * 
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- * 
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- * 
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- * 
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_FREE_COPYRIGHT@
- */
-/* 
- * Mach Operating System
- * Copyright (c) 1991,1990,1989 Carnegie Mellon University
- * All Rights Reserved.
- * 
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- * 
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- * 
- * Carnegie Mellon requests users of this software to return to
- * 
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- * 
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- */
-/*
- */
-/*
- *	File:	mach/mach_vm.defs
- *
- *	Exported kernel VM calls (for any task on the platform).
- */
-
-subsystem
-#if	KERNEL_SERVER
-	  KernelServer
-#endif	/* KERNEL_SERVER */
-#if !defined(_MACH_VM_PUBLISH_AS_LOCAL_)
-	  mach_vm
-#else
-	  vm_map_lp64_local
-#endif
-	  4800;
-
-#include <mach/std_types.defs>
-#include <mach/mach_types.defs>
-#include <mach_debug/mach_debug_types.defs>
-
-#define CONCAT(a,b) a ## b
-#if !KERNEL && !LIBSYSCALL_INTERFACE
-#define PREFIX(NAME) CONCAT(_kernelrpc_, NAME)
-#else
-#define PREFIX(NAME) NAME
-#endif
-
-#if	KERNEL_SERVER
-#define KERNEL_SERVER_SUFFIX(NAME) CONCAT(NAME, _external)
-#else
-#define KERNEL_SERVER_SUFFIX(NAME) NAME
-#endif
-
-/*
- *	Allocate zero-filled memory in the address space
- *	of the target task, either at the specified address,
- *	or wherever space can be found (controlled by flags),
- *	of the specified size.  The address at which the
- *	allocation actually took place is returned.
- */
-#if !defined(_MACH_VM_PUBLISH_AS_LOCAL_)
-routine PREFIX(KERNEL_SERVER_SUFFIX(mach_vm_allocate)) (
-		target		: vm_task_entry_t;
-	inout	address		: mach_vm_address_t;
-		size		: mach_vm_size_t;
-		flags		: int);
-
-#else
-
-#if !KERNEL && !LIBSYSCALL_INTERFACE
-skip;
-#else
-routine PREFIX(KERNEL_SERVER_SUFFIX(vm_allocate)) (
-		target		: vm_task_entry_t;
-	inout	address		: mach_vm_address_t;
-		size		: mach_vm_size_t;
-		flags		: int);
-
-#endif
-
-#endif
-
-
-/*
- *	Deallocate the specified range from the virtual
- *	address space of the target virtual memory map.
- */
-#if !defined(_MACH_VM_PUBLISH_AS_LOCAL_)
-routine PREFIX(mach_vm_deallocate) (
-		target		: vm_task_entry_t;
-		address		: mach_vm_address_t;
-		size		: mach_vm_size_t);
-
-#else
-
-#if !KERNEL && !LIBSYSCALL_INTERFACE
-skip;
-#else
-routine PREFIX(vm_deallocate) (
-		target		: vm_task_entry_t;
-		address		: mach_vm_address_t;
-		size		: mach_vm_size_t);
-#endif
-
-#endif
-
-/*
- *	Set the current or maximum protection attribute
- *	for the specified range of the virtual address
- *	space of the target virtual memory map.  The current
- *	protection limits the memory access rights of threads
- *	within the map; the maximum protection limits the accesses
- *	that may be given in the current protection.
- *	Protections are specified as a set of {read, write, execute}
- *	*permissions*.
- */
-#if !defined(_MACH_VM_PUBLISH_AS_LOCAL_)
-routine PREFIX(mach_vm_protect) (
-		target_task	: vm_task_entry_t;
-		address		: mach_vm_address_t;
-		size		: mach_vm_size_t;
-		set_maximum	: boolean_t;
-		new_protection	: vm_prot_t);
-
-
-#else
-
-#if !KERNEL && !LIBSYSCALL_INTERFACE
-skip;
-#else
-
-routine PREFIX(vm_protect) (
-		target_task	: vm_task_entry_t;
-		address		: mach_vm_address_t;
-		size		: mach_vm_size_t;
-		set_maximum	: boolean_t;
-		new_protection	: vm_prot_t);
-
-#endif
-
-#endif
-
-/*
- *	Set the inheritance attribute for the specified range
- *	of the virtual address space of the target address space.
- *	The inheritance value is one of {none, copy, share}, and
- *	specifies how the child address space should acquire
- *	this memory at the time of a task_create call.
- */
-#if !defined(_MACH_VM_PUBLISH_AS_LOCAL_)
-routine mach_vm_inherit(
-#else
-routine vm_inherit(
-#endif
-		target_task	: vm_task_entry_t;
-		address		: mach_vm_address_t;
-		size		: mach_vm_size_t;
-		new_inheritance	: vm_inherit_t);
-
-/*
- *	Returns the contents of the specified range of the
- *	virtual address space of the target task.  [The
- *	range must be aligned on a virtual page boundary,
- *	and must be a multiple of pages in extent.  The
- *	protection on the specified range must permit reading.]
- */
-#if !defined(_MACH_VM_PUBLISH_AS_LOCAL_)
-routine PREFIX(mach_vm_read) (
-#else
-routine PREFIX(vm_read) (
-#endif
-		target_task	: vm_map_t;
-		address		: mach_vm_address_t;
-		size		: mach_vm_size_t;
-	out	data		: pointer_t);
-
-/* 
- * List corrollary to vm_read, returns mapped contents of specified
- * ranges within target address space.
- */
-#if !defined(_MACH_VM_PUBLISH_AS_LOCAL_)
-routine mach_vm_read_list(
-#else
-routine vm_read_list(
-#endif
-		target_task 	: vm_map_t;
-	inout	data_list   	: mach_vm_read_entry_t;
-		count		: natural_t);
-
-/*
- *	Writes the contents of the specified range of the
- *	virtual address space of the target task.  [The
- *	range must be aligned on a virtual page boundary,
- *	and must be a multiple of pages in extent.  The
- *	protection on the specified range must permit writing.]
- */
-#if !defined(_MACH_VM_PUBLISH_AS_LOCAL_)
-routine mach_vm_write(
-#else
-routine vm_write(
-#endif
-		target_task	: vm_map_t;
-		address		: mach_vm_address_t;
-		data		: pointer_t);
-
-/*
- *	Copy the contents of the source range of the virtual
- *	address space of the target task to the destination
- *	range in that same address space.  [Both of the
- *	ranges must be aligned on a virtual page boundary,
- *	and must be multiples of pages in extent.  The
- *	protection on the source range must permit reading,
- *	and the protection on the destination range must
- *	permit writing.]
- */
-#if !defined(_MACH_VM_PUBLISH_AS_LOCAL_)
-routine mach_vm_copy(
-#else
-routine vm_copy(
-#endif
-		target_task	: vm_map_t;
-		source_address	: mach_vm_address_t;
-		size		: mach_vm_size_t;
-		dest_address	: mach_vm_address_t);
-
-/*
- *	Returns the contents of the specified range of the
- *	virtual address space of the target task.  [There
- *	are no alignment restrictions, and the results will
- *      overwrite the area pointed to by data - which must
- *      already exist. The protection on the specified range
- *	must permit reading.]
- */
-#if !defined(_MACH_VM_PUBLISH_AS_LOCAL_)
-routine mach_vm_read_overwrite(
-#else
-routine vm_read_overwrite(
-#endif
-		target_task	: vm_map_t;
-		address		: mach_vm_address_t;
-		size		: mach_vm_size_t;
-		data		: mach_vm_address_t;
-	out	outsize		: mach_vm_size_t);
-
-
-#if !defined(_MACH_VM_PUBLISH_AS_LOCAL_)
-routine mach_vm_msync(
-#else
-routine vm_msync(
-#endif
-		target_task	: vm_map_t;
-		address		: mach_vm_address_t;
-		size		: mach_vm_size_t;
-		sync_flags	: vm_sync_t );
-
-/*
- *	Set the paging behavior attribute for the specified range
- *	of the virtual address space of the target task.
- *	The behavior value is one of {default, random, forward 
- *	sequential, reverse sequential} and indicates the expected
- *	page reference pattern for the specified range.
- */
-#if !defined(_MACH_VM_PUBLISH_AS_LOCAL_)
-routine mach_vm_behavior_set(
-#else
-routine vm_behavior_set(
-#endif
-		target_task	: vm_map_t;
-		address		: mach_vm_address_t;
-		size		: mach_vm_size_t;
-		new_behavior	: vm_behavior_t);
-
-
-/*
- *	Map a user-supplie memory object into the virtual address
- *	space of the target task.  If desired (anywhere is TRUE),
- *	the kernel will find a suitable address range of the
- *	specified size; else, the specific address will be allocated.
- *
- *	The beginning address of the range will be aligned on a virtual
- *	page boundary, be at or beyond the address specified, and
- *	meet the mask requirements (bits turned on in the mask must not
- *	be turned on in the result); the size of the range, in bytes,
- *	will be rounded	up to an integral number of virtual pages.
- *
- *	The memory in the resulting range will be associated with the
- *	specified memory object, with the beginning of the memory range
- *	referring to the specified offset into the memory object.
- *
- *	The mapping will take the current and maximum protections and
- *	the inheritance attributes specified; see the vm_protect and
- *	vm_inherit calls for a description of these attributes.
- *
- *	If desired (copy is TRUE), the memory range will be filled
- *	with a copy of the data from the memory object; this copy will
- *	be private to this mapping in this target task.  Otherwise,
- *	the memory in this mapping will be shared with other mappings
- *	of the same memory object at the same offset (in this task or
- *	in other tasks).  [The Mach kernel only enforces shared memory
- *	consistency among mappings on one host with similar page alignments.
- *	The user-defined memory manager for this object is responsible
- *	for further consistency.]
- */
-#if !defined(_MACH_VM_PUBLISH_AS_LOCAL_)
-routine PREFIX(KERNEL_SERVER_SUFFIX(mach_vm_map)) (
-#else
-routine PREFIX(KERNEL_SERVER_SUFFIX(vm_map)) (
-#endif
-		target_task	: vm_task_entry_t;
-	inout	address		: mach_vm_address_t;
-		size		: mach_vm_size_t;
-		mask		: mach_vm_offset_t;
-		flags		: int;
-		object		: mem_entry_name_port_t;
-		offset		: memory_object_offset_t;
-		copy		: boolean_t;
-		cur_protection	: vm_prot_t;
-		max_protection	: vm_prot_t;
-		inheritance	: vm_inherit_t);
-
-/*
- *	Set/Get special properties of memory associated
- *	to some virtual address range, such as cachability, 
- *	migrability, replicability.  Machine-dependent.
- */
-#if !defined(_MACH_VM_PUBLISH_AS_LOCAL_)
-routine mach_vm_machine_attribute(
-#else
-routine vm_machine_attribute(
-#endif
-		target_task	: vm_map_t;
-		address		: mach_vm_address_t;
-		size		: mach_vm_size_t;
-		attribute	: vm_machine_attribute_t;
-	inout	value		: vm_machine_attribute_val_t);
-
-/*
- *      Map portion of a task's address space.
- */
-#if !defined(_MACH_VM_PUBLISH_AS_LOCAL_)
-routine PREFIX(KERNEL_SERVER_SUFFIX(mach_vm_remap)) (
-#else
-routine PREFIX(KERNEL_SERVER_SUFFIX(vm_remap)) (
-#endif
-		target_task	: vm_map_t;
-	inout	target_address	: mach_vm_address_t;
-		size		: mach_vm_size_t;
-		mask		: mach_vm_offset_t;
-		flags		: int;
-		src_task	: vm_map_t;
-		src_address	: mach_vm_address_t;
-		copy		: boolean_t;
-	out	cur_protection	: vm_prot_t;
-	out	max_protection	: vm_prot_t;
-		inheritance	: vm_inherit_t);
-
-/*
- *      Give the caller information on the given location in a virtual
- *      address space.  If a page is mapped return ref and dirty info.
- */
-#if !defined(_MACH_VM_PUBLISH_AS_LOCAL_)
-routine mach_vm_page_query(
-#else
-routine vm_map_page_query(
-#endif
-                target_map      :vm_map_t;
-                offset          :mach_vm_offset_t;
-        out     disposition     :integer_t;
-        out     ref_count       :integer_t);
-
-
-#if !defined(_MACH_VM_PUBLISH_AS_LOCAL_)
-routine mach_vm_region_recurse(
-#else
-routine vm_region_recurse_64(
-#endif
-                target_task     : vm_map_t;
-	inout	address		: mach_vm_address_t;
-        out     size            : mach_vm_size_t;
-	inout	nesting_depth	: natural_t;
-	out	info		: vm_region_recurse_info_t,CountInOut);
-
-/*
- *      Returns information about the contents of the virtual
- *      address space of the target task at the specified
- *      address.  The returned protection, inheritance, sharing
- *      and memory object values apply to the entire range described
- *      by the address range returned; the memory object offset
- *      corresponds to the beginning of the address range.
- *      [If the specified address is not allocated, the next
- *      highest address range is described.  If no addresses beyond
- *      the one specified are allocated, the call returns KERN_NO_SPACE.]
- */
-#if !defined(_MACH_VM_PUBLISH_AS_LOCAL_)
-routine mach_vm_region(
-#else
-routine vm_region_64(
-#endif
-                target_task     : vm_map_t;
-	inout	address		: mach_vm_address_t;
-        out     size            : mach_vm_size_t;
-		flavor		: vm_region_flavor_t;
-	out	info		: vm_region_info_t, CountInOut;
-        out     object_name     : memory_object_name_t =
-                                        MACH_MSG_TYPE_MOVE_SEND
-                                        ctype: mach_port_t);
-
-/*
- *	Allow application level processes to create named entries which
- *	correspond to mapped portions of their address space.  These named
- *	entries can then be manipulated, shared with other processes in
- *	other address spaces and ultimately mapped in ohter address spaces
- *
- *	THIS INTERFACE IS STILL EVOLVING.
- */
-#if !defined(_MACH_VM_PUBLISH_AS_LOCAL_)
-#if !defined(__LP64__) || KERNEL_SERVER || XNU_KERNEL_PRIVATE || LIBSYSCALL_INTERFACE
-routine _mach_make_memory_entry(
-#else
-routine mach_make_memory_entry(
-#endif
-#else
-routine mach_make_memory_entry_64(
-#endif
-		target_task	:vm_map_t;
-	inout	size		:memory_object_size_t;
-		offset		:memory_object_offset_t;
-		permission	:vm_prot_t;
-	out	object_handle	:mem_entry_name_port_move_send_t;
-		parent_handle	:mem_entry_name_port_t);
-
-/*
- *	Control behavior and investigate state of a "purgable" object in
- *	the virtual address space of the target task.  A purgable object is
- *	created via a call to mach_vm_allocate() with VM_FLAGS_PURGABLE
- *	specified.  See the routine implementation for a complete
- *	definition of the routine.
- */
-#if !defined(_MACH_VM_PUBLISH_AS_LOCAL_)
-routine PREFIX(mach_vm_purgable_control) (
-#else
-routine PREFIX(vm_purgable_control) (
-#endif
-		target_task	: vm_map_t;
-		address		: mach_vm_address_t;
-		control		: vm_purgable_t;
-	inout	state		: int);
-
-
-#if !defined(_MACH_VM_PUBLISH_AS_LOCAL_)
-routine mach_vm_page_info(
-			target_task		: vm_map_t;
-			address			: mach_vm_address_t;
-			flavor			: vm_page_info_flavor_t;
-	out		info			: vm_page_info_t, CountInOut);
-#else
-skip;
-#endif
-
-#if !defined(_MACH_VM_PUBLISH_AS_LOCAL_)
-routine mach_vm_page_range_query(
-                target_map		: vm_map_t;
-                address			: mach_vm_offset_t;
-                size			: mach_vm_size_t;
-                dispositions		: mach_vm_address_t;
-	inout	dispositions_count	: mach_vm_size_t);
-#else
-skip;
-#endif
-
-/****************************** Legacy section ***************************/
-/*  The following definitions are exist to provide compatibility with    */
-/*  the legacy APIs.  They are no different.  We just need to produce    */
-/*  the user-level stub interface for them.                              */
-/****************************** Legacy section ***************************/
-
-
-/*
- * These interfaces just aren't supported in the new (wide) model:
- *
- *	mach_vm_region_info() -
- *	vm_map_pages_info() -
- *		no user-level replacement for these MACH_DEBUG interfaces
- *	vm_map_get_upl() -
- *		no user-level replacement at the moment
- *	vm_region_info() -
- *		use mach_vm_region_info() or vm_region_info_64()
- *	vm_region_recurse() -
- *		use mach_vm_region_recurse() or vm_region_recurse_64()
- */
-
-/*
- * The following legacy interfaces are provides as macro wrappers to the new
- * interfaces.  You should strive to use the new ones instead:
- *
- *	vm_map() -
- *		use mach_vm_map() or vm_map_64()
- *	vm_region() -
- *		use mach_vm_region() or vm_region_64()
- *	mach_make_memory_entry() -
- *		use mach_vm_make_memory_entry() or mach_make_memory_entry_64()
- */
-
-/* vim: set ft=c : */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/mach_vm.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/mach_vm.h
deleted file mode 100644
index 288b8cee..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/mach_vm.h
+++ /dev/null
@@ -1,1102 +0,0 @@
-#ifndef	_mach_vm_user_
-#define	_mach_vm_user_
-
-/* Module mach_vm */
-
-#include <string.h>
-#include <mach/ndr.h>
-#include <mach/boolean.h>
-#include <mach/kern_return.h>
-#include <mach/notify.h>
-#include <mach/mach_types.h>
-#include <mach/message.h>
-#include <mach/mig_errors.h>
-#include <mach/port.h>
-	
-/* BEGIN MIG_STRNCPY_ZEROFILL CODE */
-
-#if defined(__has_include)
-#if __has_include(<mach/mig_strncpy_zerofill_support.h>)
-#ifndef USING_MIG_STRNCPY_ZEROFILL
-#define USING_MIG_STRNCPY_ZEROFILL
-#endif
-#ifndef __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
-#define __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
-#ifdef __cplusplus
-extern "C" {
-#endif
-	extern int mig_strncpy_zerofill(char *dest, const char *src, int len) __attribute__((weak_import));
-#ifdef __cplusplus
-}
-#endif
-#endif /* __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__ */
-#endif /* __has_include(<mach/mig_strncpy_zerofill_support.h>) */
-#endif /* __has_include */
-	
-/* END MIG_STRNCPY_ZEROFILL CODE */
-
-
-#ifdef AUTOTEST
-#ifndef FUNCTION_PTR_T
-#define FUNCTION_PTR_T
-typedef void (*function_ptr_t)(mach_port_t, char *, mach_msg_type_number_t);
-typedef struct {
-        char            *name;
-        function_ptr_t  function;
-} function_table_entry;
-typedef function_table_entry   *function_table_t;
-#endif /* FUNCTION_PTR_T */
-#endif /* AUTOTEST */
-
-#ifndef	mach_vm_MSG_COUNT
-#define	mach_vm_MSG_COUNT	21
-#endif	/* mach_vm_MSG_COUNT */
-
-#include <mach/std_types.h>
-#include <mach/mig.h>
-#include <mach/mig.h>
-#include <mach/mach_types.h>
-#include <mach_debug/mach_debug_types.h>
-
-#ifdef __BeforeMigUserHeader
-__BeforeMigUserHeader
-#endif /* __BeforeMigUserHeader */
-
-#include <sys/cdefs.h>
-__BEGIN_DECLS
-
-
-/* Routine mach_vm_allocate */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_vm_allocate
-(
-	vm_map_t target,
-	mach_vm_address_t *address,
-	mach_vm_size_t size,
-	int flags
-);
-
-/* Routine mach_vm_deallocate */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_vm_deallocate
-(
-	vm_map_t target,
-	mach_vm_address_t address,
-	mach_vm_size_t size
-);
-
-/* Routine mach_vm_protect */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_vm_protect
-(
-	vm_map_t target_task,
-	mach_vm_address_t address,
-	mach_vm_size_t size,
-	boolean_t set_maximum,
-	vm_prot_t new_protection
-);
-
-/* Routine mach_vm_inherit */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_vm_inherit
-(
-	vm_map_t target_task,
-	mach_vm_address_t address,
-	mach_vm_size_t size,
-	vm_inherit_t new_inheritance
-);
-
-/* Routine mach_vm_read */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_vm_read
-(
-	vm_map_t target_task,
-	mach_vm_address_t address,
-	mach_vm_size_t size,
-	vm_offset_t *data,
-	mach_msg_type_number_t *dataCnt
-);
-
-/* Routine mach_vm_read_list */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_vm_read_list
-(
-	vm_map_t target_task,
-	mach_vm_read_entry_t data_list,
-	natural_t count
-);
-
-/* Routine mach_vm_write */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_vm_write
-(
-	vm_map_t target_task,
-	mach_vm_address_t address,
-	vm_offset_t data,
-	mach_msg_type_number_t dataCnt
-);
-
-/* Routine mach_vm_copy */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_vm_copy
-(
-	vm_map_t target_task,
-	mach_vm_address_t source_address,
-	mach_vm_size_t size,
-	mach_vm_address_t dest_address
-);
-
-/* Routine mach_vm_read_overwrite */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_vm_read_overwrite
-(
-	vm_map_t target_task,
-	mach_vm_address_t address,
-	mach_vm_size_t size,
-	mach_vm_address_t data,
-	mach_vm_size_t *outsize
-);
-
-/* Routine mach_vm_msync */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_vm_msync
-(
-	vm_map_t target_task,
-	mach_vm_address_t address,
-	mach_vm_size_t size,
-	vm_sync_t sync_flags
-);
-
-/* Routine mach_vm_behavior_set */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_vm_behavior_set
-(
-	vm_map_t target_task,
-	mach_vm_address_t address,
-	mach_vm_size_t size,
-	vm_behavior_t new_behavior
-);
-
-/* Routine mach_vm_map */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_vm_map
-(
-	vm_map_t target_task,
-	mach_vm_address_t *address,
-	mach_vm_size_t size,
-	mach_vm_offset_t mask,
-	int flags,
-	mem_entry_name_port_t object,
-	memory_object_offset_t offset,
-	boolean_t copy,
-	vm_prot_t cur_protection,
-	vm_prot_t max_protection,
-	vm_inherit_t inheritance
-);
-
-/* Routine mach_vm_machine_attribute */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_vm_machine_attribute
-(
-	vm_map_t target_task,
-	mach_vm_address_t address,
-	mach_vm_size_t size,
-	vm_machine_attribute_t attribute,
-	vm_machine_attribute_val_t *value
-);
-
-/* Routine mach_vm_remap */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_vm_remap
-(
-	vm_map_t target_task,
-	mach_vm_address_t *target_address,
-	mach_vm_size_t size,
-	mach_vm_offset_t mask,
-	int flags,
-	vm_map_t src_task,
-	mach_vm_address_t src_address,
-	boolean_t copy,
-	vm_prot_t *cur_protection,
-	vm_prot_t *max_protection,
-	vm_inherit_t inheritance
-);
-
-/* Routine mach_vm_page_query */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_vm_page_query
-(
-	vm_map_t target_map,
-	mach_vm_offset_t offset,
-	integer_t *disposition,
-	integer_t *ref_count
-);
-
-/* Routine mach_vm_region_recurse */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_vm_region_recurse
-(
-	vm_map_t target_task,
-	mach_vm_address_t *address,
-	mach_vm_size_t *size,
-	natural_t *nesting_depth,
-	vm_region_recurse_info_t info,
-	mach_msg_type_number_t *infoCnt
-);
-
-/* Routine mach_vm_region */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_vm_region
-(
-	vm_map_t target_task,
-	mach_vm_address_t *address,
-	mach_vm_size_t *size,
-	vm_region_flavor_t flavor,
-	vm_region_info_t info,
-	mach_msg_type_number_t *infoCnt,
-	mach_port_t *object_name
-);
-
-/* Routine _mach_make_memory_entry */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t _mach_make_memory_entry
-(
-	vm_map_t target_task,
-	memory_object_size_t *size,
-	memory_object_offset_t offset,
-	vm_prot_t permission,
-	mem_entry_name_port_t *object_handle,
-	mem_entry_name_port_t parent_handle
-);
-
-/* Routine mach_vm_purgable_control */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_vm_purgable_control
-(
-	vm_map_t target_task,
-	mach_vm_address_t address,
-	vm_purgable_t control,
-	int *state
-);
-
-/* Routine mach_vm_page_info */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_vm_page_info
-(
-	vm_map_t target_task,
-	mach_vm_address_t address,
-	vm_page_info_flavor_t flavor,
-	vm_page_info_t info,
-	mach_msg_type_number_t *infoCnt
-);
-
-/* Routine mach_vm_page_range_query */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_vm_page_range_query
-(
-	vm_map_t target_map,
-	mach_vm_offset_t address,
-	mach_vm_size_t size,
-	mach_vm_address_t dispositions,
-	mach_vm_size_t *dispositions_count
-);
-
-__END_DECLS
-
-/********************** Caution **************************/
-/* The following data types should be used to calculate  */
-/* maximum message sizes only. The actual message may be */
-/* smaller, and the position of the arguments within the */
-/* message layout may vary from what is presented here.  */
-/* For example, if any of the arguments are variable-    */
-/* sized, and less than the maximum is sent, the data    */
-/* will be packed tight in the actual message to reduce  */
-/* the presence of holes.                                */
-/********************** Caution **************************/
-
-/* typedefs for all requests */
-
-#ifndef __Request__mach_vm_subsystem__defined
-#define __Request__mach_vm_subsystem__defined
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		mach_vm_address_t address;
-		mach_vm_size_t size;
-		int flags;
-	} __Request__mach_vm_allocate_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		mach_vm_address_t address;
-		mach_vm_size_t size;
-	} __Request__mach_vm_deallocate_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		mach_vm_address_t address;
-		mach_vm_size_t size;
-		boolean_t set_maximum;
-		vm_prot_t new_protection;
-	} __Request__mach_vm_protect_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		mach_vm_address_t address;
-		mach_vm_size_t size;
-		vm_inherit_t new_inheritance;
-	} __Request__mach_vm_inherit_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		mach_vm_address_t address;
-		mach_vm_size_t size;
-	} __Request__mach_vm_read_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		mach_vm_read_entry_t data_list;
-		natural_t count;
-	} __Request__mach_vm_read_list_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_ool_descriptor_t data;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		mach_vm_address_t address;
-		mach_msg_type_number_t dataCnt;
-	} __Request__mach_vm_write_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		mach_vm_address_t source_address;
-		mach_vm_size_t size;
-		mach_vm_address_t dest_address;
-	} __Request__mach_vm_copy_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		mach_vm_address_t address;
-		mach_vm_size_t size;
-		mach_vm_address_t data;
-	} __Request__mach_vm_read_overwrite_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		mach_vm_address_t address;
-		mach_vm_size_t size;
-		vm_sync_t sync_flags;
-	} __Request__mach_vm_msync_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		mach_vm_address_t address;
-		mach_vm_size_t size;
-		vm_behavior_t new_behavior;
-	} __Request__mach_vm_behavior_set_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t object;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		mach_vm_address_t address;
-		mach_vm_size_t size;
-		mach_vm_offset_t mask;
-		int flags;
-		memory_object_offset_t offset;
-		boolean_t copy;
-		vm_prot_t cur_protection;
-		vm_prot_t max_protection;
-		vm_inherit_t inheritance;
-	} __Request__mach_vm_map_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		mach_vm_address_t address;
-		mach_vm_size_t size;
-		vm_machine_attribute_t attribute;
-		vm_machine_attribute_val_t value;
-	} __Request__mach_vm_machine_attribute_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t src_task;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		mach_vm_address_t target_address;
-		mach_vm_size_t size;
-		mach_vm_offset_t mask;
-		int flags;
-		mach_vm_address_t src_address;
-		boolean_t copy;
-		vm_inherit_t inheritance;
-	} __Request__mach_vm_remap_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		mach_vm_offset_t offset;
-	} __Request__mach_vm_page_query_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		mach_vm_address_t address;
-		natural_t nesting_depth;
-		mach_msg_type_number_t infoCnt;
-	} __Request__mach_vm_region_recurse_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		mach_vm_address_t address;
-		vm_region_flavor_t flavor;
-		mach_msg_type_number_t infoCnt;
-	} __Request__mach_vm_region_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t parent_handle;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		memory_object_size_t size;
-		memory_object_offset_t offset;
-		vm_prot_t permission;
-	} __Request___mach_make_memory_entry_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		mach_vm_address_t address;
-		vm_purgable_t control;
-		int state;
-	} __Request__mach_vm_purgable_control_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		mach_vm_address_t address;
-		vm_page_info_flavor_t flavor;
-		mach_msg_type_number_t infoCnt;
-	} __Request__mach_vm_page_info_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		mach_vm_offset_t address;
-		mach_vm_size_t size;
-		mach_vm_address_t dispositions;
-		mach_vm_size_t dispositions_count;
-	} __Request__mach_vm_page_range_query_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-#endif /* !__Request__mach_vm_subsystem__defined */
-
-/* union of all requests */
-
-#ifndef __RequestUnion__mach_vm_subsystem__defined
-#define __RequestUnion__mach_vm_subsystem__defined
-union __RequestUnion__mach_vm_subsystem {
-	__Request__mach_vm_allocate_t Request_mach_vm_allocate;
-	__Request__mach_vm_deallocate_t Request_mach_vm_deallocate;
-	__Request__mach_vm_protect_t Request_mach_vm_protect;
-	__Request__mach_vm_inherit_t Request_mach_vm_inherit;
-	__Request__mach_vm_read_t Request_mach_vm_read;
-	__Request__mach_vm_read_list_t Request_mach_vm_read_list;
-	__Request__mach_vm_write_t Request_mach_vm_write;
-	__Request__mach_vm_copy_t Request_mach_vm_copy;
-	__Request__mach_vm_read_overwrite_t Request_mach_vm_read_overwrite;
-	__Request__mach_vm_msync_t Request_mach_vm_msync;
-	__Request__mach_vm_behavior_set_t Request_mach_vm_behavior_set;
-	__Request__mach_vm_map_t Request_mach_vm_map;
-	__Request__mach_vm_machine_attribute_t Request_mach_vm_machine_attribute;
-	__Request__mach_vm_remap_t Request_mach_vm_remap;
-	__Request__mach_vm_page_query_t Request_mach_vm_page_query;
-	__Request__mach_vm_region_recurse_t Request_mach_vm_region_recurse;
-	__Request__mach_vm_region_t Request_mach_vm_region;
-	__Request___mach_make_memory_entry_t Request__mach_make_memory_entry;
-	__Request__mach_vm_purgable_control_t Request_mach_vm_purgable_control;
-	__Request__mach_vm_page_info_t Request_mach_vm_page_info;
-	__Request__mach_vm_page_range_query_t Request_mach_vm_page_range_query;
-};
-#endif /* !__RequestUnion__mach_vm_subsystem__defined */
-/* typedefs for all replies */
-
-#ifndef __Reply__mach_vm_subsystem__defined
-#define __Reply__mach_vm_subsystem__defined
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		mach_vm_address_t address;
-	} __Reply__mach_vm_allocate_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__mach_vm_deallocate_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__mach_vm_protect_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__mach_vm_inherit_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_ool_descriptor_t data;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		mach_msg_type_number_t dataCnt;
-	} __Reply__mach_vm_read_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		mach_vm_read_entry_t data_list;
-	} __Reply__mach_vm_read_list_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__mach_vm_write_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__mach_vm_copy_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		mach_vm_size_t outsize;
-	} __Reply__mach_vm_read_overwrite_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__mach_vm_msync_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__mach_vm_behavior_set_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		mach_vm_address_t address;
-	} __Reply__mach_vm_map_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		vm_machine_attribute_val_t value;
-	} __Reply__mach_vm_machine_attribute_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		mach_vm_address_t target_address;
-		vm_prot_t cur_protection;
-		vm_prot_t max_protection;
-	} __Reply__mach_vm_remap_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		integer_t disposition;
-		integer_t ref_count;
-	} __Reply__mach_vm_page_query_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		mach_vm_address_t address;
-		mach_vm_size_t size;
-		natural_t nesting_depth;
-		mach_msg_type_number_t infoCnt;
-		int info[19];
-	} __Reply__mach_vm_region_recurse_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t object_name;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		mach_vm_address_t address;
-		mach_vm_size_t size;
-		mach_msg_type_number_t infoCnt;
-		int info[10];
-	} __Reply__mach_vm_region_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t object_handle;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		memory_object_size_t size;
-	} __Reply___mach_make_memory_entry_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		int state;
-	} __Reply__mach_vm_purgable_control_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		mach_msg_type_number_t infoCnt;
-		int info[32];
-	} __Reply__mach_vm_page_info_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		mach_vm_size_t dispositions_count;
-	} __Reply__mach_vm_page_range_query_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-#endif /* !__Reply__mach_vm_subsystem__defined */
-
-/* union of all replies */
-
-#ifndef __ReplyUnion__mach_vm_subsystem__defined
-#define __ReplyUnion__mach_vm_subsystem__defined
-union __ReplyUnion__mach_vm_subsystem {
-	__Reply__mach_vm_allocate_t Reply_mach_vm_allocate;
-	__Reply__mach_vm_deallocate_t Reply_mach_vm_deallocate;
-	__Reply__mach_vm_protect_t Reply_mach_vm_protect;
-	__Reply__mach_vm_inherit_t Reply_mach_vm_inherit;
-	__Reply__mach_vm_read_t Reply_mach_vm_read;
-	__Reply__mach_vm_read_list_t Reply_mach_vm_read_list;
-	__Reply__mach_vm_write_t Reply_mach_vm_write;
-	__Reply__mach_vm_copy_t Reply_mach_vm_copy;
-	__Reply__mach_vm_read_overwrite_t Reply_mach_vm_read_overwrite;
-	__Reply__mach_vm_msync_t Reply_mach_vm_msync;
-	__Reply__mach_vm_behavior_set_t Reply_mach_vm_behavior_set;
-	__Reply__mach_vm_map_t Reply_mach_vm_map;
-	__Reply__mach_vm_machine_attribute_t Reply_mach_vm_machine_attribute;
-	__Reply__mach_vm_remap_t Reply_mach_vm_remap;
-	__Reply__mach_vm_page_query_t Reply_mach_vm_page_query;
-	__Reply__mach_vm_region_recurse_t Reply_mach_vm_region_recurse;
-	__Reply__mach_vm_region_t Reply_mach_vm_region;
-	__Reply___mach_make_memory_entry_t Reply__mach_make_memory_entry;
-	__Reply__mach_vm_purgable_control_t Reply_mach_vm_purgable_control;
-	__Reply__mach_vm_page_info_t Reply_mach_vm_page_info;
-	__Reply__mach_vm_page_range_query_t Reply_mach_vm_page_range_query;
-};
-#endif /* !__RequestUnion__mach_vm_subsystem__defined */
-
-#ifndef subsystem_to_name_map_mach_vm
-#define subsystem_to_name_map_mach_vm \
-    { "mach_vm_allocate", 4800 },\
-    { "mach_vm_deallocate", 4801 },\
-    { "mach_vm_protect", 4802 },\
-    { "mach_vm_inherit", 4803 },\
-    { "mach_vm_read", 4804 },\
-    { "mach_vm_read_list", 4805 },\
-    { "mach_vm_write", 4806 },\
-    { "mach_vm_copy", 4807 },\
-    { "mach_vm_read_overwrite", 4808 },\
-    { "mach_vm_msync", 4809 },\
-    { "mach_vm_behavior_set", 4810 },\
-    { "mach_vm_map", 4811 },\
-    { "mach_vm_machine_attribute", 4812 },\
-    { "mach_vm_remap", 4813 },\
-    { "mach_vm_page_query", 4814 },\
-    { "mach_vm_region_recurse", 4815 },\
-    { "mach_vm_region", 4816 },\
-    { "_mach_make_memory_entry", 4817 },\
-    { "mach_vm_purgable_control", 4818 },\
-    { "mach_vm_page_info", 4819 },\
-    { "mach_vm_page_range_query", 4820 }
-#endif
-
-#ifdef __AfterMigUserHeader
-__AfterMigUserHeader
-#endif /* __AfterMigUserHeader */
-
-#endif	 /* _mach_vm_user_ */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/mach_voucher.defs b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/mach_voucher.defs
deleted file mode 100644
index 3decdd8a..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/mach_voucher.defs
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * Copyright (c) 2013 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- * 
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- * 
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- * 
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- * 
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-
-subsystem
-#if	KERNEL_SERVER
-	  KernelServer
-#endif	/* KERNEL_SERVER */
-		       mach_voucher 5400;
-
-#include <mach/std_types.defs>
-#include <mach/mach_types.defs>
-
-/* extract just the content data for a <voucher, key> pair */
-routine mach_voucher_extract_attr_content(
-		voucher		: ipc_voucher_t;
-		key		: mach_voucher_attr_key_t;
-	out	content		: mach_voucher_attr_content_t, CountInOut);
-
-/* extract a recipe to reconstitue a <voucher, key> pair item in a future voucher */
-#if !KERNEL && !LIBSYSCALL_INTERFACE
-routine _kernelrpc_mach_voucher_extract_attr_recipe(
-#else
-routine mach_voucher_extract_attr_recipe(
-#endif
-		voucher		: ipc_voucher_t;
-		key		: mach_voucher_attr_key_t;
-	out	recipe		: mach_voucher_attr_raw_recipe_t, CountInOut);
-
-/* extract a recipe array to reconstitue all the key values in a future voucher */
-routine mach_voucher_extract_all_attr_recipes(	
-		voucher		: ipc_voucher_t;
-	out	recipes		: mach_voucher_attr_raw_recipe_array_t, CountInOut);
-
-/* execute a command against a given voucher attribute */
-routine mach_voucher_attr_command(
-		voucher		: ipc_voucher_t;
-		key		: mach_voucher_attr_key_t;
-		command		: mach_voucher_attr_command_t;
-		in_content	: mach_voucher_attr_content_t;
-	out	out_content	: mach_voucher_attr_content_t, CountInOut);
-
-/* extract a recipe array to reconstitue all the key values in a future voucher */
-routine mach_voucher_debug_info(
-		task		: ipc_space_t;
-		voucher_name: mach_port_name_t;
-	out	recipes		: mach_voucher_attr_raw_recipe_array_t, CountInOut);
-
-/* vim: set ft=c : */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/mach_voucher.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/mach_voucher.h
deleted file mode 100644
index 8c49b682..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/mach_voucher.h
+++ /dev/null
@@ -1,340 +0,0 @@
-#ifndef	_mach_voucher_user_
-#define	_mach_voucher_user_
-
-/* Module mach_voucher */
-
-#include <string.h>
-#include <mach/ndr.h>
-#include <mach/boolean.h>
-#include <mach/kern_return.h>
-#include <mach/notify.h>
-#include <mach/mach_types.h>
-#include <mach/message.h>
-#include <mach/mig_errors.h>
-#include <mach/port.h>
-	
-/* BEGIN MIG_STRNCPY_ZEROFILL CODE */
-
-#if defined(__has_include)
-#if __has_include(<mach/mig_strncpy_zerofill_support.h>)
-#ifndef USING_MIG_STRNCPY_ZEROFILL
-#define USING_MIG_STRNCPY_ZEROFILL
-#endif
-#ifndef __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
-#define __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
-#ifdef __cplusplus
-extern "C" {
-#endif
-	extern int mig_strncpy_zerofill(char *dest, const char *src, int len) __attribute__((weak_import));
-#ifdef __cplusplus
-}
-#endif
-#endif /* __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__ */
-#endif /* __has_include(<mach/mig_strncpy_zerofill_support.h>) */
-#endif /* __has_include */
-	
-/* END MIG_STRNCPY_ZEROFILL CODE */
-
-
-#ifdef AUTOTEST
-#ifndef FUNCTION_PTR_T
-#define FUNCTION_PTR_T
-typedef void (*function_ptr_t)(mach_port_t, char *, mach_msg_type_number_t);
-typedef struct {
-        char            *name;
-        function_ptr_t  function;
-} function_table_entry;
-typedef function_table_entry   *function_table_t;
-#endif /* FUNCTION_PTR_T */
-#endif /* AUTOTEST */
-
-#ifndef	mach_voucher_MSG_COUNT
-#define	mach_voucher_MSG_COUNT	5
-#endif	/* mach_voucher_MSG_COUNT */
-
-#include <mach/std_types.h>
-#include <mach/mig.h>
-#include <mach/mig.h>
-#include <mach/mach_types.h>
-
-#ifdef __BeforeMigUserHeader
-__BeforeMigUserHeader
-#endif /* __BeforeMigUserHeader */
-
-#include <sys/cdefs.h>
-__BEGIN_DECLS
-
-
-/* Routine mach_voucher_extract_attr_content */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_voucher_extract_attr_content
-(
-	ipc_voucher_t voucher,
-	mach_voucher_attr_key_t key,
-	mach_voucher_attr_content_t content,
-	mach_msg_type_number_t *contentCnt
-);
-
-/* Routine mach_voucher_extract_attr_recipe */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_voucher_extract_attr_recipe
-(
-	ipc_voucher_t voucher,
-	mach_voucher_attr_key_t key,
-	mach_voucher_attr_raw_recipe_t recipe,
-	mach_msg_type_number_t *recipeCnt
-);
-
-/* Routine mach_voucher_extract_all_attr_recipes */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_voucher_extract_all_attr_recipes
-(
-	ipc_voucher_t voucher,
-	mach_voucher_attr_raw_recipe_array_t recipes,
-	mach_msg_type_number_t *recipesCnt
-);
-
-/* Routine mach_voucher_attr_command */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_voucher_attr_command
-(
-	ipc_voucher_t voucher,
-	mach_voucher_attr_key_t key,
-	mach_voucher_attr_command_t command,
-	mach_voucher_attr_content_t in_content,
-	mach_msg_type_number_t in_contentCnt,
-	mach_voucher_attr_content_t out_content,
-	mach_msg_type_number_t *out_contentCnt
-);
-
-/* Routine mach_voucher_debug_info */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_voucher_debug_info
-(
-	ipc_space_t task,
-	mach_port_name_t voucher_name,
-	mach_voucher_attr_raw_recipe_array_t recipes,
-	mach_msg_type_number_t *recipesCnt
-);
-
-__END_DECLS
-
-/********************** Caution **************************/
-/* The following data types should be used to calculate  */
-/* maximum message sizes only. The actual message may be */
-/* smaller, and the position of the arguments within the */
-/* message layout may vary from what is presented here.  */
-/* For example, if any of the arguments are variable-    */
-/* sized, and less than the maximum is sent, the data    */
-/* will be packed tight in the actual message to reduce  */
-/* the presence of holes.                                */
-/********************** Caution **************************/
-
-/* typedefs for all requests */
-
-#ifndef __Request__mach_voucher_subsystem__defined
-#define __Request__mach_voucher_subsystem__defined
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		mach_voucher_attr_key_t key;
-		mach_msg_type_number_t contentCnt;
-	} __Request__mach_voucher_extract_attr_content_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		mach_voucher_attr_key_t key;
-		mach_msg_type_number_t recipeCnt;
-	} __Request__mach_voucher_extract_attr_recipe_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		mach_msg_type_number_t recipesCnt;
-	} __Request__mach_voucher_extract_all_attr_recipes_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		mach_voucher_attr_key_t key;
-		mach_voucher_attr_command_t command;
-		mach_msg_type_number_t in_contentCnt;
-		uint8_t in_content[4096];
-		mach_msg_type_number_t out_contentCnt;
-	} __Request__mach_voucher_attr_command_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		mach_port_name_t voucher_name;
-		mach_msg_type_number_t recipesCnt;
-	} __Request__mach_voucher_debug_info_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-#endif /* !__Request__mach_voucher_subsystem__defined */
-
-/* union of all requests */
-
-#ifndef __RequestUnion__mach_voucher_subsystem__defined
-#define __RequestUnion__mach_voucher_subsystem__defined
-union __RequestUnion__mach_voucher_subsystem {
-	__Request__mach_voucher_extract_attr_content_t Request_mach_voucher_extract_attr_content;
-	__Request__mach_voucher_extract_attr_recipe_t Request_mach_voucher_extract_attr_recipe;
-	__Request__mach_voucher_extract_all_attr_recipes_t Request_mach_voucher_extract_all_attr_recipes;
-	__Request__mach_voucher_attr_command_t Request_mach_voucher_attr_command;
-	__Request__mach_voucher_debug_info_t Request_mach_voucher_debug_info;
-};
-#endif /* !__RequestUnion__mach_voucher_subsystem__defined */
-/* typedefs for all replies */
-
-#ifndef __Reply__mach_voucher_subsystem__defined
-#define __Reply__mach_voucher_subsystem__defined
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		mach_msg_type_number_t contentCnt;
-		uint8_t content[4096];
-	} __Reply__mach_voucher_extract_attr_content_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		mach_msg_type_number_t recipeCnt;
-		uint8_t recipe[4096];
-	} __Reply__mach_voucher_extract_attr_recipe_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		mach_msg_type_number_t recipesCnt;
-		uint8_t recipes[5120];
-	} __Reply__mach_voucher_extract_all_attr_recipes_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		mach_msg_type_number_t out_contentCnt;
-		uint8_t out_content[4096];
-	} __Reply__mach_voucher_attr_command_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		mach_msg_type_number_t recipesCnt;
-		uint8_t recipes[5120];
-	} __Reply__mach_voucher_debug_info_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-#endif /* !__Reply__mach_voucher_subsystem__defined */
-
-/* union of all replies */
-
-#ifndef __ReplyUnion__mach_voucher_subsystem__defined
-#define __ReplyUnion__mach_voucher_subsystem__defined
-union __ReplyUnion__mach_voucher_subsystem {
-	__Reply__mach_voucher_extract_attr_content_t Reply_mach_voucher_extract_attr_content;
-	__Reply__mach_voucher_extract_attr_recipe_t Reply_mach_voucher_extract_attr_recipe;
-	__Reply__mach_voucher_extract_all_attr_recipes_t Reply_mach_voucher_extract_all_attr_recipes;
-	__Reply__mach_voucher_attr_command_t Reply_mach_voucher_attr_command;
-	__Reply__mach_voucher_debug_info_t Reply_mach_voucher_debug_info;
-};
-#endif /* !__RequestUnion__mach_voucher_subsystem__defined */
-
-#ifndef subsystem_to_name_map_mach_voucher
-#define subsystem_to_name_map_mach_voucher \
-    { "mach_voucher_extract_attr_content", 5400 },\
-    { "mach_voucher_extract_attr_recipe", 5401 },\
-    { "mach_voucher_extract_all_attr_recipes", 5402 },\
-    { "mach_voucher_attr_command", 5403 },\
-    { "mach_voucher_debug_info", 5404 }
-#endif
-
-#ifdef __AfterMigUserHeader
-__AfterMigUserHeader
-#endif /* __AfterMigUserHeader */
-
-#endif	 /* _mach_voucher_user_ */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/mach_voucher_attr_control.defs b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/mach_voucher_attr_control.defs
deleted file mode 100644
index 89fb66cc..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/mach_voucher_attr_control.defs
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Copyright (c) 2013 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- * 
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- * 
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- * 
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- * 
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-
-subsystem
-#if	KERNEL_SERVER
-	  KernelServer
-#endif	/* KERNEL_SERVER */
-		       mach_voucher_attr_control 5600;
-
-#include <mach/std_types.defs>
-#include <mach/mach_types.defs>
-
-/* Extract the given voucher-control's value-handle from the supplied voucher */
-routine mach_voucher_attr_control_get_values(
-		control		: ipc_voucher_attr_control_t;
-		voucher		: ipc_voucher_t;
-	out	value_handles	: mach_voucher_attr_value_handle_array_t, CountInOut);
-
-/* Create a new voucher with the control's privilege (to directly assign value-handles) */
-routine mach_voucher_attr_control_create_mach_voucher(
-		control		: ipc_voucher_attr_control_t;
-		recipes		: mach_voucher_attr_raw_recipe_array_t;
-	out	voucher		: ipc_voucher_t);
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/mach_voucher_types.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/mach_voucher_types.h
deleted file mode 100644
index 89d38216..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/mach_voucher_types.h
+++ /dev/null
@@ -1,245 +0,0 @@
-/*
- * Copyright (c) 2013 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-
-#ifndef _MACH_VOUCHER_TYPES_H_
-#define _MACH_VOUCHER_TYPES_H_
-
-#include <mach/std_types.h>
-#include <mach/port.h>
-
-/*
- * Mach Voucher - an immutable collection of attribute value handles.
- *
- * The mach voucher is such that it can be passed between processes
- * as a Mach port send right (by convention in the mach_msg_header_t’s
- * msgh_voucher field).
- *
- * You may construct a new mach voucher by passing a construction
- * recipe to host_create_mach_voucher().  The construction recipe supports
- * generic commands for copying, removing, and redeeming attribute value
- * handles from previous vouchers, or running attribute-mananger-specific
- * commands within the recipe.
- *
- * Once the set of attribute value handles is constructed and returned,
- * that set will not change for the life of the voucher (just because the
- * attribute value handle itself doesn't change, the value the handle refers
- * to is free to change at will).
- */
-typedef mach_port_t             mach_voucher_t;
-#define MACH_VOUCHER_NULL       ((mach_voucher_t) 0)
-
-typedef mach_port_name_t        mach_voucher_name_t;
-#define MACH_VOUCHER_NAME_NULL  ((mach_voucher_name_t) 0)
-
-typedef mach_voucher_name_t     *mach_voucher_name_array_t;
-#define MACH_VOUCHER_NAME_ARRAY_NULL ((mach_voucher_name_array_t) 0)
-
-/*
- * This type changes appearance between user-space and kernel.  It is
- * a port at user-space and a reference to an ipc_voucher structure in-kernel.
- */
-typedef mach_voucher_t          ipc_voucher_t;
-#define IPC_VOUCHER_NULL        ((ipc_voucher_t) 0)
-
-/*
- * mach_voucher_selector_t - A means of specifying which thread/task value to extract -
- *  the current voucher set at this level, or a voucher representing
- * the full [layered] effective value for the task/thread.
- */
-typedef uint32_t mach_voucher_selector_t;
-#define MACH_VOUCHER_SELECTOR_CURRENT           ((mach_voucher_selector_t)0)
-#define MACH_VOUCHER_SELECTOR_EFFECTIVE         ((mach_voucher_selector_t)1)
-
-
-/*
- * mach_voucher_attr_key_t - The key used to identify a particular managed resource or
- * to select the specific resource manager’s data associated
- * with a given voucher.
- */
-typedef uint32_t mach_voucher_attr_key_t;
-typedef mach_voucher_attr_key_t *mach_voucher_attr_key_array_t;
-
-#define MACH_VOUCHER_ATTR_KEY_ALL               ((mach_voucher_attr_key_t)~0)
-#define MACH_VOUCHER_ATTR_KEY_NONE              ((mach_voucher_attr_key_t)0)
-
-/* other well-known-keys will be added here */
-#define MACH_VOUCHER_ATTR_KEY_ATM               ((mach_voucher_attr_key_t)1)
-#define MACH_VOUCHER_ATTR_KEY_IMPORTANCE        ((mach_voucher_attr_key_t)2)
-#define MACH_VOUCHER_ATTR_KEY_BANK              ((mach_voucher_attr_key_t)3)
-#define MACH_VOUCHER_ATTR_KEY_PTHPRIORITY       ((mach_voucher_attr_key_t)4)
-
-#define MACH_VOUCHER_ATTR_KEY_USER_DATA         ((mach_voucher_attr_key_t)7)
-#define MACH_VOUCHER_ATTR_KEY_BITS              MACH_VOUCHER_ATTR_KEY_USER_DATA /* deprecated */
-#define MACH_VOUCHER_ATTR_KEY_TEST              ((mach_voucher_attr_key_t)8)
-
-#define MACH_VOUCHER_ATTR_KEY_NUM_WELL_KNOWN    MACH_VOUCHER_ATTR_KEY_TEST
-
-/*
- * mach_voucher_attr_content_t
- *
- * Data passed to a resource manager for modifying an attribute
- * value or returned from the resource manager in response to a
- * request to externalize the current value for that attribute.
- */
-typedef uint8_t *mach_voucher_attr_content_t;
-typedef uint32_t mach_voucher_attr_content_size_t;
-
-/*
- * mach_voucher_attr_command_t - The private verbs implemented by each voucher
- * attribute manager via mach_voucher_attr_command().
- */
-typedef uint32_t mach_voucher_attr_command_t;
-
-/*
- * mach_voucher_attr_recipe_command_t
- *
- * The verbs used to create/morph a voucher attribute value.
- * We define some system-wide commands here - related to creation, and transport of
- * vouchers and attributes.  Additional commands can be defined by, and supported by,
- * individual attribute resource managers.
- */
-typedef uint32_t mach_voucher_attr_recipe_command_t;
-typedef mach_voucher_attr_recipe_command_t *mach_voucher_attr_recipe_command_array_t;
-
-#define MACH_VOUCHER_ATTR_NOOP                  ((mach_voucher_attr_recipe_command_t)0)
-#define MACH_VOUCHER_ATTR_COPY                  ((mach_voucher_attr_recipe_command_t)1)
-#define MACH_VOUCHER_ATTR_REMOVE                ((mach_voucher_attr_recipe_command_t)2)
-#define MACH_VOUCHER_ATTR_SET_VALUE_HANDLE      ((mach_voucher_attr_recipe_command_t)3)
-#define MACH_VOUCHER_ATTR_AUTO_REDEEM           ((mach_voucher_attr_recipe_command_t)4)
-#define MACH_VOUCHER_ATTR_SEND_PREPROCESS       ((mach_voucher_attr_recipe_command_t)5)
-
-/* redeem is on its way out? */
-#define MACH_VOUCHER_ATTR_REDEEM                ((mach_voucher_attr_recipe_command_t)10)
-
-/* recipe command(s) for importance attribute manager */
-#define MACH_VOUCHER_ATTR_IMPORTANCE_SELF       ((mach_voucher_attr_recipe_command_t)200)
-
-/* recipe command(s) for bit-store attribute manager */
-#define MACH_VOUCHER_ATTR_USER_DATA_STORE       ((mach_voucher_attr_recipe_command_t)211)
-#define MACH_VOUCHER_ATTR_BITS_STORE            MACH_VOUCHER_ATTR_USER_DATA_STORE /* deprecated */
-
-/* recipe command(s) for test attribute manager */
-#define MACH_VOUCHER_ATTR_TEST_STORE            MACH_VOUCHER_ATTR_USER_DATA_STORE
-
-/*
- * mach_voucher_attr_recipe_t
- *
- * An element in a recipe list to create a voucher.
- */
-#pragma pack(push, 1)
-
-typedef struct mach_voucher_attr_recipe_data {
-	mach_voucher_attr_key_t                 key;
-	mach_voucher_attr_recipe_command_t      command;
-	mach_voucher_name_t                     previous_voucher;
-	mach_voucher_attr_content_size_t        content_size;
-	uint8_t                                 content[];
-} mach_voucher_attr_recipe_data_t;
-typedef mach_voucher_attr_recipe_data_t *mach_voucher_attr_recipe_t;
-typedef mach_msg_type_number_t mach_voucher_attr_recipe_size_t;
-
-/* Make the above palatable to MIG */
-typedef uint8_t *mach_voucher_attr_raw_recipe_t;
-typedef mach_voucher_attr_raw_recipe_t mach_voucher_attr_raw_recipe_array_t;
-typedef mach_msg_type_number_t mach_voucher_attr_raw_recipe_size_t;
-typedef mach_msg_type_number_t mach_voucher_attr_raw_recipe_array_size_t;
-
-#define MACH_VOUCHER_ATTR_MAX_RAW_RECIPE_ARRAY_SIZE   5120
-#define MACH_VOUCHER_TRAP_STACK_LIMIT                 256
-
-#pragma pack(pop)
-
-/*
- * VOUCHER ATTRIBUTE MANAGER Writer types
- */
-
-/*
- * mach_voucher_attr_manager_t
- *
- * A handle through which the mach voucher mechanism communicates with the voucher
- * attribute manager for a given attribute key.
- */
-typedef mach_port_t                     mach_voucher_attr_manager_t;
-#define MACH_VOUCHER_ATTR_MANAGER_NULL  ((mach_voucher_attr_manager_t) 0)
-
-/*
- * mach_voucher_attr_control_t
- *
- * A handle provided to the voucher attribute manager for a given attribute key
- * through which it makes inquiries or control operations of the mach voucher mechanism.
- */
-typedef mach_port_t                     mach_voucher_attr_control_t;
-#define MACH_VOUCHER_ATTR_CONTROL_NULL  ((mach_voucher_attr_control_t) 0)
-
-/*
- * These types are different in-kernel vs user-space.  They are ports in user-space,
- * pointers to opaque structs in most of the kernel, and pointers to known struct
- * types in the Mach portion of the kernel.
- */
-typedef mach_port_t             ipc_voucher_attr_manager_t;
-typedef mach_port_t             ipc_voucher_attr_control_t;
-#define IPC_VOUCHER_ATTR_MANAGER_NULL ((ipc_voucher_attr_manager_t) 0)
-#define IPC_VOUCHER_ATTR_CONTROL_NULL ((ipc_voucher_attr_control_t) 0)
-
-/*
- * mach_voucher_attr_value_handle_t
- *
- * The private handle that the voucher attribute manager provides to
- * the mach voucher mechanism to represent a given attr content/value.
- */
-typedef uint64_t mach_voucher_attr_value_handle_t;
-typedef mach_voucher_attr_value_handle_t *mach_voucher_attr_value_handle_array_t;
-
-typedef mach_msg_type_number_t mach_voucher_attr_value_handle_array_size_t;
-#define MACH_VOUCHER_ATTR_VALUE_MAX_NESTED      ((mach_voucher_attr_value_handle_array_size_t)4)
-
-typedef uint32_t mach_voucher_attr_value_reference_t;
-typedef uint32_t mach_voucher_attr_value_flags_t;
-#define MACH_VOUCHER_ATTR_VALUE_FLAGS_NONE      ((mach_voucher_attr_value_flags_t)0)
-#define MACH_VOUCHER_ATTR_VALUE_FLAGS_PERSIST   ((mach_voucher_attr_value_flags_t)1)
-
-/* USE - TBD */
-typedef uint32_t mach_voucher_attr_control_flags_t;
-#define MACH_VOUCHER_ATTR_CONTROL_FLAGS_NONE    ((mach_voucher_attr_control_flags_t)0)
-
-/*
- * Commands and types for the IPC Importance Attribute Manager
- *
- * These are the valid mach_voucher_attr_command() options with the
- * MACH_VOUCHER_ATTR_KEY_IMPORTANCE key.
- */
-#define MACH_VOUCHER_IMPORTANCE_ATTR_ADD_EXTERNAL       1  /* Add some number of external refs (not supported) */
-#define MACH_VOUCHER_IMPORTANCE_ATTR_DROP_EXTERNAL      2  /* Drop some number of external refs */
-typedef uint32_t mach_voucher_attr_importance_refs;
-
-/*
- * Activity id Generation defines
- */
-#define MACH_ACTIVITY_ID_COUNT_MAX 16
-
-#endif  /* _MACH_VOUCHER_TYPES_H_ */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/machine.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/machine.h
deleted file mode 100644
index a2096232..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/machine.h
+++ /dev/null
@@ -1,395 +0,0 @@
-/*
- * Copyright (c) 2007-2016 Apple, Inc. All rights reserved.
- * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * Mach Operating System
- * Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University
- * All Rights Reserved.
- *
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- */
-/*	File:	machine.h
- *	Author:	Avadis Tevanian, Jr.
- *	Date:	1986
- *
- *	Machine independent machine abstraction.
- */
-
-#ifndef _MACH_MACHINE_H_
-#define _MACH_MACHINE_H_
-
-#ifndef __ASSEMBLER__
-
-#include <stdint.h>
-#include <mach/machine/vm_types.h>
-#include <mach/boolean.h>
-
-typedef integer_t       cpu_type_t;
-typedef integer_t       cpu_subtype_t;
-typedef integer_t       cpu_threadtype_t;
-
-#define CPU_STATE_MAX           4
-
-#define CPU_STATE_USER          0
-#define CPU_STATE_SYSTEM        1
-#define CPU_STATE_IDLE          2
-#define CPU_STATE_NICE          3
-
-
-
-/*
- * Capability bits used in the definition of cpu_type.
- */
-#define CPU_ARCH_MASK           0xff000000      /* mask for architecture bits */
-#define CPU_ARCH_ABI64          0x01000000      /* 64 bit ABI */
-#define CPU_ARCH_ABI64_32       0x02000000      /* ABI for 64-bit hardware with 32-bit types; LP32 */
-
-/*
- *	Machine types known by all.
- */
-
-#define CPU_TYPE_ANY            ((cpu_type_t) -1)
-
-#define CPU_TYPE_VAX            ((cpu_type_t) 1)
-/* skip				((cpu_type_t) 2)	*/
-/* skip				((cpu_type_t) 3)	*/
-/* skip				((cpu_type_t) 4)	*/
-/* skip				((cpu_type_t) 5)	*/
-#define CPU_TYPE_MC680x0        ((cpu_type_t) 6)
-#define CPU_TYPE_X86            ((cpu_type_t) 7)
-#define CPU_TYPE_I386           CPU_TYPE_X86            /* compatibility */
-#define CPU_TYPE_X86_64         (CPU_TYPE_X86 | CPU_ARCH_ABI64)
-
-/* skip CPU_TYPE_MIPS		((cpu_type_t) 8)	*/
-/* skip                         ((cpu_type_t) 9)	*/
-#define CPU_TYPE_MC98000        ((cpu_type_t) 10)
-#define CPU_TYPE_HPPA           ((cpu_type_t) 11)
-#define CPU_TYPE_ARM            ((cpu_type_t) 12)
-#define CPU_TYPE_ARM64          (CPU_TYPE_ARM | CPU_ARCH_ABI64)
-#define CPU_TYPE_ARM64_32       (CPU_TYPE_ARM | CPU_ARCH_ABI64_32)
-#define CPU_TYPE_MC88000        ((cpu_type_t) 13)
-#define CPU_TYPE_SPARC          ((cpu_type_t) 14)
-#define CPU_TYPE_I860           ((cpu_type_t) 15)
-/* skip	CPU_TYPE_ALPHA		((cpu_type_t) 16)	*/
-/* skip				((cpu_type_t) 17)	*/
-#define CPU_TYPE_POWERPC                ((cpu_type_t) 18)
-#define CPU_TYPE_POWERPC64              (CPU_TYPE_POWERPC | CPU_ARCH_ABI64)
-/* skip				((cpu_type_t) 19)	*/
-
-/*
- *	Machine subtypes (these are defined here, instead of in a machine
- *	dependent directory, so that any program can get all definitions
- *	regardless of where is it compiled).
- */
-
-/*
- * Capability bits used in the definition of cpu_subtype.
- */
-#define CPU_SUBTYPE_MASK        0xff000000      /* mask for feature flags */
-#define CPU_SUBTYPE_LIB64       0x80000000      /* 64 bit libraries */
-
-
-/*
- *	Object files that are hand-crafted to run on any
- *	implementation of an architecture are tagged with
- *	CPU_SUBTYPE_MULTIPLE.  This functions essentially the same as
- *	the "ALL" subtype of an architecture except that it allows us
- *	to easily find object files that may need to be modified
- *	whenever a new implementation of an architecture comes out.
- *
- *	It is the responsibility of the implementor to make sure the
- *	software handles unsupported implementations elegantly.
- */
-#define CPU_SUBTYPE_MULTIPLE            ((cpu_subtype_t) -1)
-#define CPU_SUBTYPE_LITTLE_ENDIAN       ((cpu_subtype_t) 0)
-#define CPU_SUBTYPE_BIG_ENDIAN          ((cpu_subtype_t) 1)
-
-/*
- *     Machine threadtypes.
- *     This is none - not defined - for most machine types/subtypes.
- */
-#define CPU_THREADTYPE_NONE             ((cpu_threadtype_t) 0)
-
-/*
- *	VAX subtypes (these do *not* necessary conform to the actual cpu
- *	ID assigned by DEC available via the SID register).
- */
-
-#define CPU_SUBTYPE_VAX_ALL     ((cpu_subtype_t) 0)
-#define CPU_SUBTYPE_VAX780      ((cpu_subtype_t) 1)
-#define CPU_SUBTYPE_VAX785      ((cpu_subtype_t) 2)
-#define CPU_SUBTYPE_VAX750      ((cpu_subtype_t) 3)
-#define CPU_SUBTYPE_VAX730      ((cpu_subtype_t) 4)
-#define CPU_SUBTYPE_UVAXI       ((cpu_subtype_t) 5)
-#define CPU_SUBTYPE_UVAXII      ((cpu_subtype_t) 6)
-#define CPU_SUBTYPE_VAX8200     ((cpu_subtype_t) 7)
-#define CPU_SUBTYPE_VAX8500     ((cpu_subtype_t) 8)
-#define CPU_SUBTYPE_VAX8600     ((cpu_subtype_t) 9)
-#define CPU_SUBTYPE_VAX8650     ((cpu_subtype_t) 10)
-#define CPU_SUBTYPE_VAX8800     ((cpu_subtype_t) 11)
-#define CPU_SUBTYPE_UVAXIII     ((cpu_subtype_t) 12)
-
-/*
- *      680x0 subtypes
- *
- * The subtype definitions here are unusual for historical reasons.
- * NeXT used to consider 68030 code as generic 68000 code.  For
- * backwards compatability:
- *
- *	CPU_SUBTYPE_MC68030 symbol has been preserved for source code
- *	compatability.
- *
- *	CPU_SUBTYPE_MC680x0_ALL has been defined to be the same
- *	subtype as CPU_SUBTYPE_MC68030 for binary comatability.
- *
- *	CPU_SUBTYPE_MC68030_ONLY has been added to allow new object
- *	files to be tagged as containing 68030-specific instructions.
- */
-
-#define CPU_SUBTYPE_MC680x0_ALL         ((cpu_subtype_t) 1)
-#define CPU_SUBTYPE_MC68030             ((cpu_subtype_t) 1) /* compat */
-#define CPU_SUBTYPE_MC68040             ((cpu_subtype_t) 2)
-#define CPU_SUBTYPE_MC68030_ONLY        ((cpu_subtype_t) 3)
-
-/*
- *	I386 subtypes
- */
-
-#define CPU_SUBTYPE_INTEL(f, m) ((cpu_subtype_t) (f) + ((m) << 4))
-
-#define CPU_SUBTYPE_I386_ALL                    CPU_SUBTYPE_INTEL(3, 0)
-#define CPU_SUBTYPE_386                                 CPU_SUBTYPE_INTEL(3, 0)
-#define CPU_SUBTYPE_486                                 CPU_SUBTYPE_INTEL(4, 0)
-#define CPU_SUBTYPE_486SX                               CPU_SUBTYPE_INTEL(4, 8) // 8 << 4 = 128
-#define CPU_SUBTYPE_586                                 CPU_SUBTYPE_INTEL(5, 0)
-#define CPU_SUBTYPE_PENT        CPU_SUBTYPE_INTEL(5, 0)
-#define CPU_SUBTYPE_PENTPRO     CPU_SUBTYPE_INTEL(6, 1)
-#define CPU_SUBTYPE_PENTII_M3   CPU_SUBTYPE_INTEL(6, 3)
-#define CPU_SUBTYPE_PENTII_M5   CPU_SUBTYPE_INTEL(6, 5)
-#define CPU_SUBTYPE_CELERON                             CPU_SUBTYPE_INTEL(7, 6)
-#define CPU_SUBTYPE_CELERON_MOBILE              CPU_SUBTYPE_INTEL(7, 7)
-#define CPU_SUBTYPE_PENTIUM_3                   CPU_SUBTYPE_INTEL(8, 0)
-#define CPU_SUBTYPE_PENTIUM_3_M                 CPU_SUBTYPE_INTEL(8, 1)
-#define CPU_SUBTYPE_PENTIUM_3_XEON              CPU_SUBTYPE_INTEL(8, 2)
-#define CPU_SUBTYPE_PENTIUM_M                   CPU_SUBTYPE_INTEL(9, 0)
-#define CPU_SUBTYPE_PENTIUM_4                   CPU_SUBTYPE_INTEL(10, 0)
-#define CPU_SUBTYPE_PENTIUM_4_M                 CPU_SUBTYPE_INTEL(10, 1)
-#define CPU_SUBTYPE_ITANIUM                             CPU_SUBTYPE_INTEL(11, 0)
-#define CPU_SUBTYPE_ITANIUM_2                   CPU_SUBTYPE_INTEL(11, 1)
-#define CPU_SUBTYPE_XEON                                CPU_SUBTYPE_INTEL(12, 0)
-#define CPU_SUBTYPE_XEON_MP                             CPU_SUBTYPE_INTEL(12, 1)
-
-#define CPU_SUBTYPE_INTEL_FAMILY(x)     ((x) & 15)
-#define CPU_SUBTYPE_INTEL_FAMILY_MAX    15
-
-#define CPU_SUBTYPE_INTEL_MODEL(x)      ((x) >> 4)
-#define CPU_SUBTYPE_INTEL_MODEL_ALL     0
-
-/*
- *	X86 subtypes.
- */
-
-#define CPU_SUBTYPE_X86_ALL             ((cpu_subtype_t)3)
-#define CPU_SUBTYPE_X86_64_ALL          ((cpu_subtype_t)3)
-#define CPU_SUBTYPE_X86_ARCH1           ((cpu_subtype_t)4)
-#define CPU_SUBTYPE_X86_64_H            ((cpu_subtype_t)8)      /* Haswell feature subset */
-
-
-#define CPU_THREADTYPE_INTEL_HTT        ((cpu_threadtype_t) 1)
-
-/*
- *	Mips subtypes.
- */
-
-#define CPU_SUBTYPE_MIPS_ALL    ((cpu_subtype_t) 0)
-#define CPU_SUBTYPE_MIPS_R2300  ((cpu_subtype_t) 1)
-#define CPU_SUBTYPE_MIPS_R2600  ((cpu_subtype_t) 2)
-#define CPU_SUBTYPE_MIPS_R2800  ((cpu_subtype_t) 3)
-#define CPU_SUBTYPE_MIPS_R2000a ((cpu_subtype_t) 4)     /* pmax */
-#define CPU_SUBTYPE_MIPS_R2000  ((cpu_subtype_t) 5)
-#define CPU_SUBTYPE_MIPS_R3000a ((cpu_subtype_t) 6)     /* 3max */
-#define CPU_SUBTYPE_MIPS_R3000  ((cpu_subtype_t) 7)
-
-/*
- *	MC98000 (PowerPC) subtypes
- */
-#define CPU_SUBTYPE_MC98000_ALL ((cpu_subtype_t) 0)
-#define CPU_SUBTYPE_MC98601     ((cpu_subtype_t) 1)
-
-/*
- *	HPPA subtypes for Hewlett-Packard HP-PA family of
- *	risc processors. Port by NeXT to 700 series.
- */
-
-#define CPU_SUBTYPE_HPPA_ALL            ((cpu_subtype_t) 0)
-#define CPU_SUBTYPE_HPPA_7100           ((cpu_subtype_t) 0) /* compat */
-#define CPU_SUBTYPE_HPPA_7100LC         ((cpu_subtype_t) 1)
-
-/*
- *	MC88000 subtypes.
- */
-#define CPU_SUBTYPE_MC88000_ALL ((cpu_subtype_t) 0)
-#define CPU_SUBTYPE_MC88100     ((cpu_subtype_t) 1)
-#define CPU_SUBTYPE_MC88110     ((cpu_subtype_t) 2)
-
-/*
- *	SPARC subtypes
- */
-#define CPU_SUBTYPE_SPARC_ALL           ((cpu_subtype_t) 0)
-
-/*
- *	I860 subtypes
- */
-#define CPU_SUBTYPE_I860_ALL    ((cpu_subtype_t) 0)
-#define CPU_SUBTYPE_I860_860    ((cpu_subtype_t) 1)
-
-/*
- *	PowerPC subtypes
- */
-#define CPU_SUBTYPE_POWERPC_ALL         ((cpu_subtype_t) 0)
-#define CPU_SUBTYPE_POWERPC_601         ((cpu_subtype_t) 1)
-#define CPU_SUBTYPE_POWERPC_602         ((cpu_subtype_t) 2)
-#define CPU_SUBTYPE_POWERPC_603         ((cpu_subtype_t) 3)
-#define CPU_SUBTYPE_POWERPC_603e        ((cpu_subtype_t) 4)
-#define CPU_SUBTYPE_POWERPC_603ev       ((cpu_subtype_t) 5)
-#define CPU_SUBTYPE_POWERPC_604         ((cpu_subtype_t) 6)
-#define CPU_SUBTYPE_POWERPC_604e        ((cpu_subtype_t) 7)
-#define CPU_SUBTYPE_POWERPC_620         ((cpu_subtype_t) 8)
-#define CPU_SUBTYPE_POWERPC_750         ((cpu_subtype_t) 9)
-#define CPU_SUBTYPE_POWERPC_7400        ((cpu_subtype_t) 10)
-#define CPU_SUBTYPE_POWERPC_7450        ((cpu_subtype_t) 11)
-#define CPU_SUBTYPE_POWERPC_970         ((cpu_subtype_t) 100)
-
-/*
- *	ARM subtypes
- */
-#define CPU_SUBTYPE_ARM_ALL             ((cpu_subtype_t) 0)
-#define CPU_SUBTYPE_ARM_V4T             ((cpu_subtype_t) 5)
-#define CPU_SUBTYPE_ARM_V6              ((cpu_subtype_t) 6)
-#define CPU_SUBTYPE_ARM_V5TEJ           ((cpu_subtype_t) 7)
-#define CPU_SUBTYPE_ARM_XSCALE          ((cpu_subtype_t) 8)
-#define CPU_SUBTYPE_ARM_V7              ((cpu_subtype_t) 9)  /* ARMv7-A and ARMv7-R */
-#define CPU_SUBTYPE_ARM_V7F             ((cpu_subtype_t) 10) /* Cortex A9 */
-#define CPU_SUBTYPE_ARM_V7S             ((cpu_subtype_t) 11) /* Swift */
-#define CPU_SUBTYPE_ARM_V7K             ((cpu_subtype_t) 12)
-#define CPU_SUBTYPE_ARM_V8              ((cpu_subtype_t) 13)
-#define CPU_SUBTYPE_ARM_V6M             ((cpu_subtype_t) 14) /* Not meant to be run under xnu */
-#define CPU_SUBTYPE_ARM_V7M             ((cpu_subtype_t) 15) /* Not meant to be run under xnu */
-#define CPU_SUBTYPE_ARM_V7EM            ((cpu_subtype_t) 16) /* Not meant to be run under xnu */
-#define CPU_SUBTYPE_ARM_V8M             ((cpu_subtype_t) 17) /* Not meant to be run under xnu */
-
-/*
- *  ARM64 subtypes
- */
-#define CPU_SUBTYPE_ARM64_ALL           ((cpu_subtype_t) 0)
-#define CPU_SUBTYPE_ARM64_V8            ((cpu_subtype_t) 1)
-#define CPU_SUBTYPE_ARM64E              ((cpu_subtype_t) 2)
-
-/* CPU subtype feature flags for ptrauth on arm64e platforms */
-#define CPU_SUBTYPE_ARM64_PTR_AUTH_MASK 0x0f000000
-#define CPU_SUBTYPE_ARM64_PTR_AUTH_VERSION(x) (((x) & CPU_SUBTYPE_ARM64_PTR_AUTH_MASK) >> 24)
-
-/*
- *  ARM64_32 subtypes
- */
-#define CPU_SUBTYPE_ARM64_32_ALL        ((cpu_subtype_t) 0)
-#define CPU_SUBTYPE_ARM64_32_V8 ((cpu_subtype_t) 1)
-
-#endif /* !__ASSEMBLER__ */
-
-/*
- *	CPU families (sysctl hw.cpufamily)
- *
- * These are meant to identify the CPU's marketing name - an
- * application can map these to (possibly) localized strings.
- * NB: the encodings of the CPU families are intentionally arbitrary.
- * There is no ordering, and you should never try to deduce whether
- * or not some feature is available based on the family.
- * Use feature flags (eg, hw.optional.altivec) to test for optional
- * functionality.
- */
-#define CPUFAMILY_UNKNOWN               0
-#define CPUFAMILY_POWERPC_G3            0xcee41549
-#define CPUFAMILY_POWERPC_G4            0x77c184ae
-#define CPUFAMILY_POWERPC_G5            0xed76d8aa
-#define CPUFAMILY_INTEL_6_13            0xaa33392b
-#define CPUFAMILY_INTEL_PENRYN          0x78ea4fbc
-#define CPUFAMILY_INTEL_NEHALEM         0x6b5a4cd2
-#define CPUFAMILY_INTEL_WESTMERE        0x573b5eec
-#define CPUFAMILY_INTEL_SANDYBRIDGE     0x5490b78c
-#define CPUFAMILY_INTEL_IVYBRIDGE       0x1f65e835
-#define CPUFAMILY_INTEL_HASWELL         0x10b282dc
-#define CPUFAMILY_INTEL_BROADWELL       0x582ed09c
-#define CPUFAMILY_INTEL_SKYLAKE         0x37fc219f
-#define CPUFAMILY_INTEL_KABYLAKE        0x0f817246
-#if !defined(RC_HIDE_XNU_ICELAKE)
-#define CPUFAMILY_INTEL_ICELAKE         0x38435547
-#endif /* not RC_HIDE_XNU_ICELAKE */
-#if !defined(RC_HIDE_XNU_COMETLAKE)
-#define CPUFAMILY_INTEL_COMETLAKE       0x1cf8a03e
-#endif /* not RC_HIDE_XNU_COMETLAKE */
-#define CPUFAMILY_ARM_9                 0xe73283ae
-#define CPUFAMILY_ARM_11                0x8ff620d8
-#define CPUFAMILY_ARM_XSCALE            0x53b005f5
-#define CPUFAMILY_ARM_12                0xbd1b0ae9
-#define CPUFAMILY_ARM_13                0x0cc90e64
-#define CPUFAMILY_ARM_14                0x96077ef1
-#define CPUFAMILY_ARM_15                0xa8511bca
-#define CPUFAMILY_ARM_SWIFT             0x1e2d6381
-#define CPUFAMILY_ARM_CYCLONE           0x37a09642
-#define CPUFAMILY_ARM_TYPHOON           0x2c91a47e
-#define CPUFAMILY_ARM_TWISTER           0x92fb37c8
-#define CPUFAMILY_ARM_HURRICANE         0x67ceee93
-#define CPUFAMILY_ARM_MONSOON_MISTRAL   0xe81e7ef6
-#define CPUFAMILY_ARM_VORTEX_TEMPEST    0x07d34b9f
-#define CPUFAMILY_ARM_LIGHTNING_THUNDER 0x462504d2
-
-/* The following synonyms are deprecated: */
-#define CPUFAMILY_INTEL_6_23    CPUFAMILY_INTEL_PENRYN
-#define CPUFAMILY_INTEL_6_26    CPUFAMILY_INTEL_NEHALEM
-
-
-#endif  /* _MACH_MACHINE_H_ */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/machine/_structs.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/machine/_structs.h
deleted file mode 100644
index e0bdc108..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/machine/_structs.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright (c) 2017 Apple Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-
-#ifndef _MACH_MACHINE__STRUCTS_H_
-#define _MACH_MACHINE__STRUCTS_H_
-
-#if defined (__i386__) || defined(__x86_64__)
-#include "mach/i386/_structs.h"
-#else
-#error architecture not supported
-#endif
-
-#endif /* _MACH_MACHINE__STRUCTS_H_ */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/machine/asm.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/machine/asm.h
deleted file mode 100644
index 1cdbb810..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/machine/asm.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright (c) 2000-2007 Apple Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- * 
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- * 
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- * 
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- * 
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-
-#ifndef _MACH_MACHINE_ASM_H
-#define _MACH_MACHINE_ASM_H
-
-#if defined (__i386__) || defined(__x86_64__)
-#include "mach/i386/asm.h"
-#else
-#error architecture not supported
-#endif
-
-#endif /* _MACH_MACHINE_ASM_H */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/machine/boolean.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/machine/boolean.h
deleted file mode 100644
index 6423078b..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/machine/boolean.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright (c) 2000-2007 Apple Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-
-#ifndef _MACH_MACHINE_BOOLEAN_H_
-#define _MACH_MACHINE_BOOLEAN_H_
-
-#if defined (__i386__) || defined(__x86_64__)
-#include "mach/i386/boolean.h"
-#else
-#error architecture not supported
-#endif
-
-#endif /* _MACH_MACHINE_BOOLEAN_H_ */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/machine/exception.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/machine/exception.h
deleted file mode 100644
index 5a85bd37..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/machine/exception.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright (c) 2000-2007 Apple Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-
-#ifndef _MACH_MACHINE_EXCEPTION_H_
-#define _MACH_MACHINE_EXCEPTION_H_
-
-#if defined (__i386__) || defined(__x86_64__)
-#include "mach/i386/exception.h"
-#else
-#error architecture not supported
-#endif
-
-#endif /* _MACH_MACHINE_EXCEPTION_H_ */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/machine/kern_return.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/machine/kern_return.h
deleted file mode 100644
index 276656cb..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/machine/kern_return.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright (c) 2000-2007 Apple Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-
-#ifndef _MACH_MACHINE_KERN_RETURN_H_
-#define _MACH_MACHINE_KERN_RETURN_H_
-
-#if defined (__i386__) || defined(__x86_64__)
-#include "mach/i386/kern_return.h"
-#else
-#error architecture not supported
-#endif
-
-#endif /* _MACH_MACHINE_KERN_RETURN_H_ */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/machine/machine_types.defs b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/machine/machine_types.defs
deleted file mode 100644
index f4813948..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/machine/machine_types.defs
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
- * Copyright (c) 2000-2007 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- * 
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- * 
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- * 
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- * 
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-
-/*
- *	Header file for basic, machine-dependent data types.  arm+i386 version.
- */
- 
-#ifndef _MACH_MACHINE_MACHNINE_TYPES_DEFS
-#define _MACH_MACHINE_MACHNINE_TYPES_DEFS
-
-type short = int16_t;
-type int = int32_t;
-type unsigned = uint32_t;
-
-type float = MACH_MSG_TYPE_REAL_32;
-type double = MACH_MSG_TYPE_REAL_64;
-
-
-/* from ISO/IEC 988:1999 spec */
-/* 7.18.1.4 Integer types capable of hgolding object pointers */
-/*
- * The [u]intptr_t types for the native
- * integer type, e.g. 32 or 64 or.. whatever
- * register size the machine has.  They are
- * used for entities that might be either
- * [unsigned] integers or pointers, and for
- * type-casting between the two.
- *
- * For instance, the IPC system represents
- * a port in user space as an integer and
- * in kernel space as a pointer.
- */
-#if defined(__LP64__)
-type uintptr_t = uint64_t;
-type intptr_t = int64_t;
-#else
-type uintptr_t = uint32_t;
-type intptr_t = int32_t;
-#endif
-
-/*
- * These are the legacy Mach types that are
- * the [rough] equivalents of the standards above.
- * They were defined in terms of int, not
- * long int, so they remain separate.
- */
-#if defined(__LP64__)
-type register_t = int64_t;
-#else
-type register_t = int32_t;
-#endif
-type integer_t = int32_t;
-type natural_t = uint32_t;
-
-/*
- * These are the VM types that scale with the address
- * space size of a given process.
- */
-
-#if defined(__LP64__)
-type vm_address_t = uint64_t;
-type vm_offset_t = uint64_t;
-type vm_size_t = uint64_t;
-#else
-type vm_address_t = natural_t;
-type vm_offset_t = natural_t;
-type vm_size_t = natural_t;
-#endif
-
-/* This is a bit of a hack for arm.  We implement the backend with a wide type, but present a native-sized type to callers */
-type mach_port_context_t = uint64_t;
-
-/*
- * The mach_vm_xxx_t types are sized to hold the
- * maximum pointer, offset, etc... supported on the
- * platform.
- */
-type mach_vm_address_t = uint64_t;
-type mach_vm_offset_t = uint64_t;
-type mach_vm_size_t = uint64_t;
-
-#if	MACH_IPC_COMPAT
-/*
- * For the old IPC interface
- */
-#define	MSG_TYPE_PORT_NAME	natural_t
-
-#endif	/* MACH_IPC_COMPAT */
-
-/*
- * These are types used internal to Mach to implement the
- * legacy 32-bit VM APIs published by the kernel.
- */
-#define	VM32_SUPPORT	1
-
-type vm32_address_t = uint32_t;
-type vm32_offset_t = uint32_t;
-type vm32_size_t = uint32_t;
-
-#endif /* _MACH_MACHINE_MACHNINE_TYPES_DEFS */
-
-/* vim: set ft=c : */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/machine/ndr_def.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/machine/ndr_def.h
deleted file mode 100644
index 26b9099c..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/machine/ndr_def.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright (c) 2000-2007 Apple Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-
-#ifndef _MACH_MACHINE_NDR_DEF_H
-#define _MACH_MACHINE_NDR_DEF_H
-
-#if defined (__i386__) || defined(__x86_64__)
-#include "mach/i386/ndr_def.h"
-#else
-#error architecture not supported
-#endif
-
-#endif /* _MACH_MACHINE_NDR_DEF_H */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/machine/processor_info.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/machine/processor_info.h
deleted file mode 100644
index da865d7f..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/machine/processor_info.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright (c) 2000-2007 Apple Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-
-#ifndef _MACH_MACHINE_PROCESSOR_INFO_H_
-#define _MACH_MACHINE_PROCESSOR_INFO_H_
-
-#if defined (__i386__) || defined(__x86_64__)
-#include "mach/i386/processor_info.h"
-#else
-#error architecture not supported
-#endif
-
-#endif /* _MACH_MACHINE_PROCESSOR_INFO_H_ */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/machine/rpc.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/machine/rpc.h
deleted file mode 100644
index 196a1546..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/machine/rpc.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright (c) 2000-2007 Apple Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-
-#ifndef _MACH_MACHINE_RPC_H_
-#define _MACH_MACHINE_RPC_H_
-
-#if defined (__i386__) || defined(__x86_64__)
-#include "mach/i386/rpc.h"
-#else
-#error architecture not supported
-#endif
-
-#endif  /* _MACH_MACHINE_RPC_H_ */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/machine/sdt.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/machine/sdt.h
deleted file mode 100644
index 8cd16fe2..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/machine/sdt.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright (c) 2007-2019 Apple Inc. All rights reserved.
- */
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License, Version 1.0 only
- * (the "License").  You may not use this file except in compliance
- * with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
- */
-
-#ifndef _MACH_MACHINE_SYS_SDT_H
-#define _MACH_MACHINE_SYS_SDT_H
-
-#include <mach/machine/sdt_isa.h>
-
-
-#endif  /* _MACH_MACHINE_SYS_SDT_H */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/machine/sdt_isa.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/machine/sdt_isa.h
deleted file mode 100644
index edd26dcc..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/machine/sdt_isa.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (c) 2000-2007 Apple Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- * 
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- * 
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- * 
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- * 
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-#ifndef _MACH_MACHINE_SDT_ISA_H_
-#define _MACH_MACHINE_SDT_ISA_H_
-
-#if defined (__i386__) || defined(__x86_64__)
-#include <mach/i386/sdt_isa.h>
-#else
-#error architecture not supported
-#endif
-
-#endif /* _BSD_MACHINE_SDT_ISA_H_ */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/machine/thread_state.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/machine/thread_state.h
deleted file mode 100644
index 7dbfecef..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/machine/thread_state.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright (c) 2000-2007 Apple Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-
-#ifndef _MACH_MACHINE_THREAD_STATE_H_
-#define _MACH_MACHINE_THREAD_STATE_H_
-
-#if defined (__i386__) || defined(__x86_64__)
-#include "mach/i386/thread_state.h"
-#else
-#error architecture not supported
-#endif
-
-#endif /* _MACH_MACHINE_THREAD_STATE_H_ */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/machine/thread_status.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/machine/thread_status.h
deleted file mode 100644
index 1c389658..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/machine/thread_status.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright (c) 2000-2007 Apple Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-
-#ifndef _MACH_MACHINE_THREAD_STATUS_H_
-#define _MACH_MACHINE_THREAD_STATUS_H_
-
-#if defined (__i386__) || defined(__x86_64__)
-#include "mach/i386/thread_status.h"
-#else
-#error architecture not supported
-#endif
-
-#endif /* _MACH_MACHINE_THREAD_STATUS_H_ */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/machine/vm_param.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/machine/vm_param.h
deleted file mode 100644
index 08f4ac5f..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/machine/vm_param.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright (c) 2000-2007 Apple Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-
-#ifndef _MACH_MACHINE_VM_PARAM_H_
-#define _MACH_MACHINE_VM_PARAM_H_
-
-#if defined (__i386__) || defined(__x86_64__)
-#include "mach/i386/vm_param.h"
-#else
-#error architecture not supported
-#endif
-
-#endif /* _MACH_MACHINE_VM_PARAM_H_ */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/machine/vm_types.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/machine/vm_types.h
deleted file mode 100644
index 66cbebfd..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/machine/vm_types.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright (c) 2000-2007 Apple Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-
-#ifndef _MACH_MACHINE_VM_TYPES_H_
-#define _MACH_MACHINE_VM_TYPES_H_
-
-#if defined (__i386__) || defined(__x86_64__)
-#include "mach/i386/vm_types.h"
-#else
-#error architecture not supported
-#endif
-
-#endif /* _MACH_MACHINE_VM_TYPES_H_ */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/memory_entry.defs b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/memory_entry.defs
deleted file mode 100644
index bcc83f26..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/memory_entry.defs
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright (c) 2017 Apple Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- * 
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- * 
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- * 
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- * 
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-
-subsystem
-#if KERNEL_SERVER
-    KernelServer
-#endif /* KERNEL_SERVER */
-       memory_entry 4900;
-
-#include <mach/std_types.defs>
-#include <mach/mach_types.defs>
-#include <mach_debug/mach_debug_types.defs>
-
-routine mach_memory_entry_purgable_control(
-		mem_entry	: mem_entry_name_port_t;
-		control		: vm_purgable_t;
-	inout	state		: int);
-
-routine mach_memory_entry_access_tracking(
-		mem_entry		: mem_entry_name_port_t;
-	inout	access_tracking		: int;
-	out	access_tracking_reads	: uint32_t;
-	out	access_tracking_writes	: uint32_t);
-
-routine mach_memory_entry_ownership(
-		mem_entry	: mem_entry_name_port_t;
-		owner		: task_t;
-		ledger_tag	: int;
-		ledger_flags	: int);
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/memory_entry.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/memory_entry.h
deleted file mode 100644
index 6c51e888..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/memory_entry.h
+++ /dev/null
@@ -1,249 +0,0 @@
-#ifndef	_memory_entry_user_
-#define	_memory_entry_user_
-
-/* Module memory_entry */
-
-#include <string.h>
-#include <mach/ndr.h>
-#include <mach/boolean.h>
-#include <mach/kern_return.h>
-#include <mach/notify.h>
-#include <mach/mach_types.h>
-#include <mach/message.h>
-#include <mach/mig_errors.h>
-#include <mach/port.h>
-	
-/* BEGIN MIG_STRNCPY_ZEROFILL CODE */
-
-#if defined(__has_include)
-#if __has_include(<mach/mig_strncpy_zerofill_support.h>)
-#ifndef USING_MIG_STRNCPY_ZEROFILL
-#define USING_MIG_STRNCPY_ZEROFILL
-#endif
-#ifndef __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
-#define __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
-#ifdef __cplusplus
-extern "C" {
-#endif
-	extern int mig_strncpy_zerofill(char *dest, const char *src, int len) __attribute__((weak_import));
-#ifdef __cplusplus
-}
-#endif
-#endif /* __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__ */
-#endif /* __has_include(<mach/mig_strncpy_zerofill_support.h>) */
-#endif /* __has_include */
-	
-/* END MIG_STRNCPY_ZEROFILL CODE */
-
-
-#ifdef AUTOTEST
-#ifndef FUNCTION_PTR_T
-#define FUNCTION_PTR_T
-typedef void (*function_ptr_t)(mach_port_t, char *, mach_msg_type_number_t);
-typedef struct {
-        char            *name;
-        function_ptr_t  function;
-} function_table_entry;
-typedef function_table_entry   *function_table_t;
-#endif /* FUNCTION_PTR_T */
-#endif /* AUTOTEST */
-
-#ifndef	memory_entry_MSG_COUNT
-#define	memory_entry_MSG_COUNT	3
-#endif	/* memory_entry_MSG_COUNT */
-
-#include <mach/std_types.h>
-#include <mach/mig.h>
-#include <mach/mig.h>
-#include <mach/mach_types.h>
-#include <mach_debug/mach_debug_types.h>
-
-#ifdef __BeforeMigUserHeader
-__BeforeMigUserHeader
-#endif /* __BeforeMigUserHeader */
-
-#include <sys/cdefs.h>
-__BEGIN_DECLS
-
-
-/* Routine mach_memory_entry_purgable_control */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_memory_entry_purgable_control
-(
-	mem_entry_name_port_t mem_entry,
-	vm_purgable_t control,
-	int *state
-);
-
-/* Routine mach_memory_entry_access_tracking */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_memory_entry_access_tracking
-(
-	mem_entry_name_port_t mem_entry,
-	int *access_tracking,
-	uint32_t *access_tracking_reads,
-	uint32_t *access_tracking_writes
-);
-
-/* Routine mach_memory_entry_ownership */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_memory_entry_ownership
-(
-	mem_entry_name_port_t mem_entry,
-	task_t owner,
-	int ledger_tag,
-	int ledger_flags
-);
-
-__END_DECLS
-
-/********************** Caution **************************/
-/* The following data types should be used to calculate  */
-/* maximum message sizes only. The actual message may be */
-/* smaller, and the position of the arguments within the */
-/* message layout may vary from what is presented here.  */
-/* For example, if any of the arguments are variable-    */
-/* sized, and less than the maximum is sent, the data    */
-/* will be packed tight in the actual message to reduce  */
-/* the presence of holes.                                */
-/********************** Caution **************************/
-
-/* typedefs for all requests */
-
-#ifndef __Request__memory_entry_subsystem__defined
-#define __Request__memory_entry_subsystem__defined
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		vm_purgable_t control;
-		int state;
-	} __Request__mach_memory_entry_purgable_control_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		int access_tracking;
-	} __Request__mach_memory_entry_access_tracking_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t owner;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		int ledger_tag;
-		int ledger_flags;
-	} __Request__mach_memory_entry_ownership_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-#endif /* !__Request__memory_entry_subsystem__defined */
-
-/* union of all requests */
-
-#ifndef __RequestUnion__memory_entry_subsystem__defined
-#define __RequestUnion__memory_entry_subsystem__defined
-union __RequestUnion__memory_entry_subsystem {
-	__Request__mach_memory_entry_purgable_control_t Request_mach_memory_entry_purgable_control;
-	__Request__mach_memory_entry_access_tracking_t Request_mach_memory_entry_access_tracking;
-	__Request__mach_memory_entry_ownership_t Request_mach_memory_entry_ownership;
-};
-#endif /* !__RequestUnion__memory_entry_subsystem__defined */
-/* typedefs for all replies */
-
-#ifndef __Reply__memory_entry_subsystem__defined
-#define __Reply__memory_entry_subsystem__defined
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		int state;
-	} __Reply__mach_memory_entry_purgable_control_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		int access_tracking;
-		uint32_t access_tracking_reads;
-		uint32_t access_tracking_writes;
-	} __Reply__mach_memory_entry_access_tracking_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__mach_memory_entry_ownership_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-#endif /* !__Reply__memory_entry_subsystem__defined */
-
-/* union of all replies */
-
-#ifndef __ReplyUnion__memory_entry_subsystem__defined
-#define __ReplyUnion__memory_entry_subsystem__defined
-union __ReplyUnion__memory_entry_subsystem {
-	__Reply__mach_memory_entry_purgable_control_t Reply_mach_memory_entry_purgable_control;
-	__Reply__mach_memory_entry_access_tracking_t Reply_mach_memory_entry_access_tracking;
-	__Reply__mach_memory_entry_ownership_t Reply_mach_memory_entry_ownership;
-};
-#endif /* !__RequestUnion__memory_entry_subsystem__defined */
-
-#ifndef subsystem_to_name_map_memory_entry
-#define subsystem_to_name_map_memory_entry \
-    { "mach_memory_entry_purgable_control", 4900 },\
-    { "mach_memory_entry_access_tracking", 4901 },\
-    { "mach_memory_entry_ownership", 4902 }
-#endif
-
-#ifdef __AfterMigUserHeader
-__AfterMigUserHeader
-#endif /* __AfterMigUserHeader */
-
-#endif	 /* _memory_entry_user_ */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/memory_object_types.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/memory_object_types.h
deleted file mode 100644
index 1a731d5b..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/memory_object_types.h
+++ /dev/null
@@ -1,299 +0,0 @@
-/*
- * Copyright (c) 2000-2016 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-/*
- * Mach Operating System
- * Copyright (c) 1991,1990,1989,1988 Carnegie Mellon University
- * All Rights Reserved.
- *
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- */
-/*
- */
-/*
- *	File:	memory_object.h
- *	Author:	Michael Wayne Young
- *
- *	External memory management interface definition.
- */
-
-#ifndef _MACH_MEMORY_OBJECT_TYPES_H_
-#define _MACH_MEMORY_OBJECT_TYPES_H_
-
-/*
- *	User-visible types used in the external memory
- *	management interface:
- */
-
-#include <mach/port.h>
-#include <mach/message.h>
-#include <mach/vm_prot.h>
-#include <mach/vm_sync.h>
-#include <mach/vm_types.h>
-#include <mach/machine/vm_types.h>
-
-#include <sys/cdefs.h>
-
-#define VM_64_BIT_DATA_OBJECTS
-
-typedef unsigned long long      memory_object_offset_t;
-typedef unsigned long long      memory_object_size_t;
-typedef natural_t               memory_object_cluster_size_t;
-typedef natural_t *             memory_object_fault_info_t;
-
-typedef unsigned long long      vm_object_id_t;
-
-
-/*
- * Temporary until real EMMI version gets re-implemented
- */
-
-
-typedef mach_port_t     memory_object_t;
-typedef mach_port_t     memory_object_control_t;
-
-
-typedef memory_object_t *memory_object_array_t;
-/* A memory object ... */
-/*  Used by the kernel to retrieve */
-/*  or store data */
-
-typedef mach_port_t     memory_object_name_t;
-/* Used to describe the memory ... */
-/*  object in vm_regions() calls */
-
-typedef mach_port_t     memory_object_default_t;
-/* Registered with the host ... */
-/*  for creating new internal objects */
-
-#define MEMORY_OBJECT_NULL              ((memory_object_t) 0)
-#define MEMORY_OBJECT_CONTROL_NULL      ((memory_object_control_t) 0)
-#define MEMORY_OBJECT_NAME_NULL         ((memory_object_name_t) 0)
-#define MEMORY_OBJECT_DEFAULT_NULL      ((memory_object_default_t) 0)
-
-
-typedef int             memory_object_copy_strategy_t;
-/* How memory manager handles copy: */
-#define         MEMORY_OBJECT_COPY_NONE         0
-/* ... No special support */
-#define         MEMORY_OBJECT_COPY_CALL         1
-/* ... Make call on memory manager */
-#define         MEMORY_OBJECT_COPY_DELAY        2
-/* ... Memory manager doesn't
- *     change data externally.
- */
-#define         MEMORY_OBJECT_COPY_TEMPORARY    3
-/* ... Memory manager doesn't
- *     change data externally, and
- *     doesn't need to see changes.
- */
-#define         MEMORY_OBJECT_COPY_SYMMETRIC    4
-/* ... Memory manager doesn't
- *     change data externally,
- *     doesn't need to see changes,
- *     and object will not be
- *     multiply mapped.
- *
- *     XXX
- *     Not yet safe for non-kernel use.
- */
-
-#define         MEMORY_OBJECT_COPY_INVALID      5
-/* ...	An invalid copy strategy,
- *	for external objects which
- *	have not been initialized.
- *	Allows copy_strategy to be
- *	examined without also
- *	examining pager_ready and
- *	internal.
- */
-
-typedef int             memory_object_return_t;
-/* Which pages to return to manager
- *  this time (lock_request) */
-#define         MEMORY_OBJECT_RETURN_NONE       0
-/* ... don't return any. */
-#define         MEMORY_OBJECT_RETURN_DIRTY      1
-/* ... only dirty pages. */
-#define         MEMORY_OBJECT_RETURN_ALL        2
-/* ... dirty and precious pages. */
-#define         MEMORY_OBJECT_RETURN_ANYTHING   3
-/* ... any resident page. */
-
-/*
- *	Data lock request flags
- */
-
-#define         MEMORY_OBJECT_DATA_FLUSH        0x1
-#define         MEMORY_OBJECT_DATA_NO_CHANGE    0x2
-#define         MEMORY_OBJECT_DATA_PURGE        0x4
-#define         MEMORY_OBJECT_COPY_SYNC         0x8
-#define         MEMORY_OBJECT_DATA_SYNC         0x10
-#define         MEMORY_OBJECT_IO_SYNC           0x20
-#define         MEMORY_OBJECT_DATA_FLUSH_ALL    0x40
-
-/*
- *	Types for the memory object flavor interfaces
- */
-
-#define MEMORY_OBJECT_INFO_MAX      (1024)
-typedef int     *memory_object_info_t;
-typedef int      memory_object_flavor_t;
-typedef int      memory_object_info_data_t[MEMORY_OBJECT_INFO_MAX];
-
-
-#define MEMORY_OBJECT_PERFORMANCE_INFO  11
-#define MEMORY_OBJECT_ATTRIBUTE_INFO    14
-#define MEMORY_OBJECT_BEHAVIOR_INFO     15
-
-
-struct memory_object_perf_info {
-	memory_object_cluster_size_t    cluster_size;
-	boolean_t                       may_cache;
-};
-
-struct memory_object_attr_info {
-	memory_object_copy_strategy_t   copy_strategy;
-	memory_object_cluster_size_t    cluster_size;
-	boolean_t                       may_cache_object;
-	boolean_t                       temporary;
-};
-
-struct memory_object_behave_info {
-	memory_object_copy_strategy_t   copy_strategy;
-	boolean_t                       temporary;
-	boolean_t                       invalidate;
-	boolean_t                       silent_overwrite;
-	boolean_t                       advisory_pageout;
-};
-
-
-typedef struct memory_object_behave_info *memory_object_behave_info_t;
-typedef struct memory_object_behave_info memory_object_behave_info_data_t;
-
-typedef struct memory_object_perf_info  *memory_object_perf_info_t;
-typedef struct memory_object_perf_info  memory_object_perf_info_data_t;
-
-typedef struct memory_object_attr_info  *memory_object_attr_info_t;
-typedef struct memory_object_attr_info  memory_object_attr_info_data_t;
-
-#define MEMORY_OBJECT_BEHAVE_INFO_COUNT ((mach_msg_type_number_t)       \
-	        (sizeof(memory_object_behave_info_data_t)/sizeof(int)))
-#define MEMORY_OBJECT_PERF_INFO_COUNT   ((mach_msg_type_number_t)       \
-	        (sizeof(memory_object_perf_info_data_t)/sizeof(int)))
-#define MEMORY_OBJECT_ATTR_INFO_COUNT   ((mach_msg_type_number_t)       \
-	        (sizeof(memory_object_attr_info_data_t)/sizeof(int)))
-
-#define invalid_memory_object_flavor(f)                                 \
-	(f != MEMORY_OBJECT_ATTRIBUTE_INFO &&                           \
-	 f != MEMORY_OBJECT_PERFORMANCE_INFO &&                         \
-	 f != OLD_MEMORY_OBJECT_BEHAVIOR_INFO &&                        \
-	 f != MEMORY_OBJECT_BEHAVIOR_INFO &&                            \
-	 f != OLD_MEMORY_OBJECT_ATTRIBUTE_INFO)
-
-
-/*
- * Used to support options on memory_object_release_name call
- */
-#define MEMORY_OBJECT_TERMINATE_IDLE    0x1
-#define MEMORY_OBJECT_RESPECT_CACHE     0x2
-#define MEMORY_OBJECT_RELEASE_NO_OP     0x4
-
-
-/* named entry processor mapping options */
-/* enumerated */
-#define MAP_MEM_NOOP                      0
-#define MAP_MEM_COPYBACK                  1
-#define MAP_MEM_IO                        2
-#define MAP_MEM_WTHRU                     3
-#define MAP_MEM_WCOMB                     4       /* Write combining mode */
-                                                  /* aka store gather     */
-#define MAP_MEM_INNERWBACK                5
-#define MAP_MEM_POSTED                    6
-#define MAP_MEM_RT                        7
-#define MAP_MEM_POSTED_REORDERED          8
-#define MAP_MEM_POSTED_COMBINED_REORDERED 9
-
-#define GET_MAP_MEM(flags)      \
-	((((unsigned int)(flags)) >> 24) & 0xFF)
-
-#define SET_MAP_MEM(caching, flags)     \
-	((flags) = ((((unsigned int)(caching)) << 24) \
-	                & 0xFF000000) | ((flags) & 0xFFFFFF));
-
-/* leave room for vm_prot bits (0xFF ?) */
-#define MAP_MEM_LEDGER_TAGGED        0x002000 /* object owned by a specific task and ledger */
-#define MAP_MEM_PURGABLE_KERNEL_ONLY 0x004000 /* volatility controlled by kernel */
-#define MAP_MEM_GRAB_SECLUDED   0x008000 /* can grab secluded pages */
-#define MAP_MEM_ONLY            0x010000 /* change processor caching  */
-#define MAP_MEM_NAMED_CREATE    0x020000 /* create extant object      */
-#define MAP_MEM_PURGABLE        0x040000 /* create a purgable VM object */
-#define MAP_MEM_NAMED_REUSE     0x080000 /* reuse provided entry if identical */
-#define MAP_MEM_USE_DATA_ADDR   0x100000 /* preserve address of data, rather than base of page */
-#define MAP_MEM_VM_COPY         0x200000 /* make a copy of a VM range */
-#define MAP_MEM_VM_SHARE        0x400000 /* extract a VM range for remap */
-#define MAP_MEM_4K_DATA_ADDR    0x800000 /* preserve 4K aligned address of data */
-
-#define MAP_MEM_FLAGS_MASK 0x00FFFF00
-#define MAP_MEM_FLAGS_USER (                               \
-	MAP_MEM_PURGABLE_KERNEL_ONLY |                     \
-	MAP_MEM_GRAB_SECLUDED |                            \
-	MAP_MEM_ONLY |                                     \
-	MAP_MEM_NAMED_CREATE |                             \
-	MAP_MEM_PURGABLE |                                 \
-	MAP_MEM_NAMED_REUSE |                              \
-	MAP_MEM_USE_DATA_ADDR |                            \
-	MAP_MEM_VM_COPY |                                  \
-	MAP_MEM_VM_SHARE |                                 \
-	MAP_MEM_LEDGER_TAGGED |                            \
-	MAP_MEM_4K_DATA_ADDR)
-#define MAP_MEM_FLAGS_ALL (                     \
-	MAP_MEM_FLAGS_USER)
-
-
-#endif  /* _MACH_MEMORY_OBJECT_TYPES_H_ */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/message.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/message.h
deleted file mode 100644
index 59e9fa07..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/message.h
+++ /dev/null
@@ -1,902 +0,0 @@
-/*
- * Copyright (c) 2000-2005 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-/*
- * Mach Operating System
- * Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University
- * All Rights Reserved.
- *
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- */
-/*
- * NOTICE: This file was modified by McAfee Research in 2004 to introduce
- * support for mandatory and extensible security protections.  This notice
- * is included in support of clause 2.2 (b) of the Apple Public License,
- * Version 2.0.
- * Copyright (c) 2005 SPARTA, Inc.
- */
-/*
- */
-/*
- *	File:	mach/message.h
- *
- *	Mach IPC message and primitive function definitions.
- */
-
-#ifndef _MACH_MESSAGE_H_
-#define _MACH_MESSAGE_H_
-
-#include <stdint.h>
-#include <mach/port.h>
-#include <mach/boolean.h>
-#include <mach/kern_return.h>
-#include <mach/machine/vm_types.h>
-
-#include <sys/cdefs.h>
-#include <sys/appleapiopts.h>
-#include <Availability.h>
-
-/*
- *  The timeout mechanism uses mach_msg_timeout_t values,
- *  passed by value.  The timeout units are milliseconds.
- *  It is controlled with the MACH_SEND_TIMEOUT
- *  and MACH_RCV_TIMEOUT options.
- */
-
-typedef natural_t mach_msg_timeout_t;
-
-/*
- *  The value to be used when there is no timeout.
- *  (No MACH_SEND_TIMEOUT/MACH_RCV_TIMEOUT option.)
- */
-
-#define MACH_MSG_TIMEOUT_NONE           ((mach_msg_timeout_t) 0)
-
-/*
- *  The kernel uses MACH_MSGH_BITS_COMPLEX as a hint.  If it isn't on, it
- *  assumes the body of the message doesn't contain port rights or OOL
- *  data.  The field is set in received messages.  A user task must
- *  use caution in interpreting the body of a message if the bit isn't
- *  on, because the mach_msg_type's in the body might "lie" about the
- *  contents.  If the bit isn't on, but the mach_msg_types
- *  in the body specify rights or OOL data, the behavior is undefined.
- *  (Ie, an error may or may not be produced.)
- *
- *  The value of MACH_MSGH_BITS_REMOTE determines the interpretation
- *  of the msgh_remote_port field.  It is handled like a msgt_name,
- *  but must result in a send or send-once type right.
- *
- *  The value of MACH_MSGH_BITS_LOCAL determines the interpretation
- *  of the msgh_local_port field.  It is handled like a msgt_name,
- *  and also must result in a send or send-once type right.
- *
- *  The value of MACH_MSGH_BITS_VOUCHER determines the interpretation
- *  of the msgh_voucher_port field.  It is handled like a msgt_name,
- *  but must result in a send right (and the msgh_voucher_port field
- *  must be the name of a send right to a Mach voucher kernel object.
- *
- *  MACH_MSGH_BITS() combines two MACH_MSG_TYPE_* values, for the remote
- *  and local fields, into a single value suitable for msgh_bits.
- *
- *  MACH_MSGH_BITS_CIRCULAR should be zero; is is used internally.
- *
- *  The unused bits should be zero and are reserved for the kernel
- *  or for future interface expansion.
- */
-
-#define MACH_MSGH_BITS_ZERO             0x00000000
-
-#define MACH_MSGH_BITS_REMOTE_MASK      0x0000001f
-#define MACH_MSGH_BITS_LOCAL_MASK       0x00001f00
-#define MACH_MSGH_BITS_VOUCHER_MASK     0x001f0000
-
-#define MACH_MSGH_BITS_PORTS_MASK               \
-	        (MACH_MSGH_BITS_REMOTE_MASK |   \
-	         MACH_MSGH_BITS_LOCAL_MASK |    \
-	         MACH_MSGH_BITS_VOUCHER_MASK)
-
-#define MACH_MSGH_BITS_COMPLEX          0x80000000U     /* message is complex */
-
-#define MACH_MSGH_BITS_USER             0x801f1f1fU     /* allowed bits user->kernel */
-
-#define MACH_MSGH_BITS_RAISEIMP         0x20000000U     /* importance raised due to msg */
-#define MACH_MSGH_BITS_DENAP            MACH_MSGH_BITS_RAISEIMP
-
-#define MACH_MSGH_BITS_IMPHOLDASRT      0x10000000U     /* assertion help, userland private */
-#define MACH_MSGH_BITS_DENAPHOLDASRT    MACH_MSGH_BITS_IMPHOLDASRT
-
-#define MACH_MSGH_BITS_CIRCULAR         0x10000000U     /* message circular, kernel private */
-
-#define MACH_MSGH_BITS_USED             0xb01f1f1fU
-
-/* setter macros for the bits */
-#define MACH_MSGH_BITS(remote, local)  /* legacy */             \
-	        ((remote) | ((local) << 8))
-#define MACH_MSGH_BITS_SET_PORTS(remote, local, voucher)        \
-	(((remote) & MACH_MSGH_BITS_REMOTE_MASK) |              \
-	 (((local) << 8) & MACH_MSGH_BITS_LOCAL_MASK) |         \
-	 (((voucher) << 16) & MACH_MSGH_BITS_VOUCHER_MASK))
-#define MACH_MSGH_BITS_SET(remote, local, voucher, other)       \
-	(MACH_MSGH_BITS_SET_PORTS((remote), (local), (voucher)) \
-	 | ((other) &~ MACH_MSGH_BITS_PORTS_MASK))
-
-/* getter macros for pulling values out of the bits field */
-#define MACH_MSGH_BITS_REMOTE(bits)                             \
-	        ((bits) & MACH_MSGH_BITS_REMOTE_MASK)
-#define MACH_MSGH_BITS_LOCAL(bits)                              \
-	        (((bits) & MACH_MSGH_BITS_LOCAL_MASK) >> 8)
-#define MACH_MSGH_BITS_VOUCHER(bits)                            \
-	        (((bits) & MACH_MSGH_BITS_VOUCHER_MASK) >> 16)
-#define MACH_MSGH_BITS_PORTS(bits)                              \
-	((bits) & MACH_MSGH_BITS_PORTS_MASK)
-#define MACH_MSGH_BITS_OTHER(bits)                              \
-	        ((bits) &~ MACH_MSGH_BITS_PORTS_MASK)
-
-/* checking macros */
-#define MACH_MSGH_BITS_HAS_REMOTE(bits)                         \
-	(MACH_MSGH_BITS_REMOTE(bits) != MACH_MSGH_BITS_ZERO)
-#define MACH_MSGH_BITS_HAS_LOCAL(bits)                          \
-	(MACH_MSGH_BITS_LOCAL(bits) != MACH_MSGH_BITS_ZERO)
-#define MACH_MSGH_BITS_HAS_VOUCHER(bits)                        \
-	(MACH_MSGH_BITS_VOUCHER(bits) != MACH_MSGH_BITS_ZERO)
-#define MACH_MSGH_BITS_IS_COMPLEX(bits)                         \
-	(((bits) & MACH_MSGH_BITS_COMPLEX) != MACH_MSGH_BITS_ZERO)
-
-/* importance checking macros */
-#define MACH_MSGH_BITS_RAISED_IMPORTANCE(bits)                  \
-	(((bits) & MACH_MSGH_BITS_RAISEIMP) != MACH_MSGH_BITS_ZERO)
-#define MACH_MSGH_BITS_HOLDS_IMPORTANCE_ASSERTION(bits)         \
-	(((bits) & MACH_MSGH_BITS_IMPHOLDASRT) != MACH_MSGH_BITS_ZERO)
-
-/*
- *  Every message starts with a message header.
- *  Following the message header, if the message is complex, are a count
- *  of type descriptors and the type descriptors themselves
- *  (mach_msg_descriptor_t). The size of the message must be specified in
- *  bytes, and includes the message header, descriptor count, descriptors,
- *  and inline data.
- *
- *  The msgh_remote_port field specifies the destination of the message.
- *  It must specify a valid send or send-once right for a port.
- *
- *  The msgh_local_port field specifies a "reply port".  Normally,
- *  This field carries a send-once right that the receiver will use
- *  to reply to the message.  It may carry the values MACH_PORT_NULL,
- *  MACH_PORT_DEAD, a send-once right, or a send right.
- *
- *  The msgh_voucher_port field specifies a Mach voucher port. Only
- *  send rights to kernel-implemented Mach Voucher kernel objects in
- *  addition to MACH_PORT_NULL or MACH_PORT_DEAD may be passed.
- *
- *  The msgh_id field is uninterpreted by the message primitives.
- *  It normally carries information specifying the format
- *  or meaning of the message.
- */
-
-typedef unsigned int mach_msg_bits_t;
-typedef natural_t mach_msg_size_t;
-typedef integer_t mach_msg_id_t;
-
-#define MACH_MSG_SIZE_NULL (mach_msg_size_t *) 0
-
-typedef unsigned int mach_msg_priority_t;
-
-#define MACH_MSG_PRIORITY_UNSPECIFIED (mach_msg_priority_t) 0
-
-typedef unsigned int mach_msg_type_name_t;
-
-#define MACH_MSG_TYPE_MOVE_RECEIVE      16      /* Must hold receive right */
-#define MACH_MSG_TYPE_MOVE_SEND         17      /* Must hold send right(s) */
-#define MACH_MSG_TYPE_MOVE_SEND_ONCE    18      /* Must hold sendonce right */
-#define MACH_MSG_TYPE_COPY_SEND         19      /* Must hold send right(s) */
-#define MACH_MSG_TYPE_MAKE_SEND         20      /* Must hold receive right */
-#define MACH_MSG_TYPE_MAKE_SEND_ONCE    21      /* Must hold receive right */
-#define MACH_MSG_TYPE_COPY_RECEIVE      22      /* NOT VALID */
-#define MACH_MSG_TYPE_DISPOSE_RECEIVE   24      /* must hold receive right */
-#define MACH_MSG_TYPE_DISPOSE_SEND      25      /* must hold send right(s) */
-#define MACH_MSG_TYPE_DISPOSE_SEND_ONCE 26      /* must hold sendonce right */
-
-typedef unsigned int mach_msg_copy_options_t;
-
-#define MACH_MSG_PHYSICAL_COPY          0
-#define MACH_MSG_VIRTUAL_COPY           1
-#define MACH_MSG_ALLOCATE               2
-#define MACH_MSG_OVERWRITE              3       /* deprecated */
-#ifdef  MACH_KERNEL
-#define MACH_MSG_KALLOC_COPY_T          4
-#endif  /* MACH_KERNEL */
-
-#define MACH_MSG_GUARD_FLAGS_NONE                   0x0000
-#define MACH_MSG_GUARD_FLAGS_IMMOVABLE_RECEIVE      0x0001    /* Move the receive right and mark it as immovable */
-#define MACH_MSG_GUARD_FLAGS_UNGUARDED_ON_SEND      0x0002    /* Verify that the port is unguarded */
-#define MACH_MSG_GUARD_FLAGS_MASK                   0x0003    /* Valid flag bits */
-typedef unsigned int mach_msg_guard_flags_t;
-
-/*
- * In a complex mach message, the mach_msg_header_t is followed by
- * a descriptor count, then an array of that number of descriptors
- * (mach_msg_*_descriptor_t). The type field of mach_msg_type_descriptor_t
- * (which any descriptor can be cast to) indicates the flavor of the
- * descriptor.
- *
- * Note that in LP64, the various types of descriptors are no longer all
- * the same size as mach_msg_descriptor_t, so the array cannot be indexed
- * as expected.
- */
-
-typedef unsigned int mach_msg_descriptor_type_t;
-
-#define MACH_MSG_PORT_DESCRIPTOR                0
-#define MACH_MSG_OOL_DESCRIPTOR                 1
-#define MACH_MSG_OOL_PORTS_DESCRIPTOR           2
-#define MACH_MSG_OOL_VOLATILE_DESCRIPTOR        3
-#define MACH_MSG_GUARDED_PORT_DESCRIPTOR        4
-
-#pragma pack(push, 4)
-
-typedef struct{
-	natural_t                     pad1;
-	mach_msg_size_t               pad2;
-	unsigned int                  pad3 : 24;
-	mach_msg_descriptor_type_t    type : 8;
-} mach_msg_type_descriptor_t;
-
-typedef struct{
-	mach_port_t                   name;
-// Pad to 8 bytes everywhere except the K64 kernel where mach_port_t is 8 bytes
-	mach_msg_size_t               pad1;
-	unsigned int                  pad2 : 16;
-	mach_msg_type_name_t          disposition : 8;
-	mach_msg_descriptor_type_t    type : 8;
-} mach_msg_port_descriptor_t;
-
-typedef struct{
-	uint32_t                      address;
-	mach_msg_size_t               size;
-	boolean_t                     deallocate: 8;
-	mach_msg_copy_options_t       copy: 8;
-	unsigned int                  pad1: 8;
-	mach_msg_descriptor_type_t    type: 8;
-} mach_msg_ool_descriptor32_t;
-
-typedef struct{
-	uint64_t                      address;
-	boolean_t                     deallocate: 8;
-	mach_msg_copy_options_t       copy: 8;
-	unsigned int                  pad1: 8;
-	mach_msg_descriptor_type_t    type: 8;
-	mach_msg_size_t               size;
-} mach_msg_ool_descriptor64_t;
-
-typedef struct{
-	void*                         address;
-#if !defined(__LP64__)
-	mach_msg_size_t               size;
-#endif
-	boolean_t                     deallocate: 8;
-	mach_msg_copy_options_t       copy: 8;
-	unsigned int                  pad1: 8;
-	mach_msg_descriptor_type_t    type: 8;
-#if defined(__LP64__)
-	mach_msg_size_t               size;
-#endif
-} mach_msg_ool_descriptor_t;
-
-typedef struct{
-	uint32_t                      address;
-	mach_msg_size_t               count;
-	boolean_t                     deallocate: 8;
-	mach_msg_copy_options_t       copy: 8;
-	mach_msg_type_name_t          disposition : 8;
-	mach_msg_descriptor_type_t    type : 8;
-} mach_msg_ool_ports_descriptor32_t;
-
-typedef struct{
-	uint64_t                      address;
-	boolean_t                     deallocate: 8;
-	mach_msg_copy_options_t       copy: 8;
-	mach_msg_type_name_t          disposition : 8;
-	mach_msg_descriptor_type_t    type : 8;
-	mach_msg_size_t               count;
-} mach_msg_ool_ports_descriptor64_t;
-
-typedef struct{
-	void*                         address;
-#if !defined(__LP64__)
-	mach_msg_size_t               count;
-#endif
-	boolean_t                     deallocate: 8;
-	mach_msg_copy_options_t       copy: 8;
-	mach_msg_type_name_t          disposition : 8;
-	mach_msg_descriptor_type_t    type : 8;
-#if defined(__LP64__)
-	mach_msg_size_t               count;
-#endif
-} mach_msg_ool_ports_descriptor_t;
-
-typedef struct{
-	uint32_t                      context;
-	mach_port_name_t              name;
-	mach_msg_guard_flags_t        flags : 16;
-	mach_msg_type_name_t          disposition : 8;
-	mach_msg_descriptor_type_t    type : 8;
-} mach_msg_guarded_port_descriptor32_t;
-
-typedef struct{
-	uint64_t                      context;
-	mach_msg_guard_flags_t        flags : 16;
-	mach_msg_type_name_t          disposition : 8;
-	mach_msg_descriptor_type_t    type : 8;
-	mach_port_name_t              name;
-} mach_msg_guarded_port_descriptor64_t;
-
-typedef struct{
-	mach_port_context_t           context;
-#if !defined(__LP64__)
-	mach_port_name_t              name;
-#endif
-	mach_msg_guard_flags_t        flags : 16;
-	mach_msg_type_name_t          disposition : 8;
-	mach_msg_descriptor_type_t    type : 8;
-#if defined(__LP64__)
-	mach_port_name_t              name;
-#endif /* defined(__LP64__) */
-} mach_msg_guarded_port_descriptor_t;
-
-/*
- * LP64support - This union definition is not really
- * appropriate in LP64 mode because not all descriptors
- * are of the same size in that environment.
- */
-typedef union{
-	mach_msg_port_descriptor_t            port;
-	mach_msg_ool_descriptor_t             out_of_line;
-	mach_msg_ool_ports_descriptor_t       ool_ports;
-	mach_msg_type_descriptor_t            type;
-	mach_msg_guarded_port_descriptor_t    guarded_port;
-} mach_msg_descriptor_t;
-
-typedef struct{
-	mach_msg_size_t msgh_descriptor_count;
-} mach_msg_body_t;
-
-#define MACH_MSG_BODY_NULL (mach_msg_body_t *) 0
-#define MACH_MSG_DESCRIPTOR_NULL (mach_msg_descriptor_t *) 0
-
-typedef struct{
-	mach_msg_bits_t       msgh_bits;
-	mach_msg_size_t       msgh_size;
-	mach_port_t           msgh_remote_port;
-	mach_port_t           msgh_local_port;
-	mach_port_name_t      msgh_voucher_port;
-	mach_msg_id_t         msgh_id;
-} mach_msg_header_t;
-
-#define msgh_reserved           msgh_voucher_port
-#define MACH_MSG_NULL   (mach_msg_header_t *) 0
-
-typedef struct{
-	mach_msg_header_t       header;
-	mach_msg_body_t         body;
-} mach_msg_base_t;
-
-typedef unsigned int mach_msg_trailer_type_t;
-
-#define MACH_MSG_TRAILER_FORMAT_0       0
-
-typedef unsigned int mach_msg_trailer_size_t;
-typedef char *mach_msg_trailer_info_t;
-
-typedef struct{
-	mach_msg_trailer_type_t       msgh_trailer_type;
-	mach_msg_trailer_size_t       msgh_trailer_size;
-} mach_msg_trailer_t;
-
-/*
- *  The msgh_seqno field carries a sequence number
- *  associated with the received-from port.  A port's
- *  sequence number is incremented every time a message
- *  is received from it and included in the received
- *  trailer to help put messages back in sequence if
- *  multiple threads receive and/or process received
- *  messages.
- */
-typedef struct{
-	mach_msg_trailer_type_t       msgh_trailer_type;
-	mach_msg_trailer_size_t       msgh_trailer_size;
-	mach_port_seqno_t             msgh_seqno;
-} mach_msg_seqno_trailer_t;
-
-typedef struct{
-	unsigned int                  val[2];
-} security_token_t;
-
-typedef struct{
-	mach_msg_trailer_type_t       msgh_trailer_type;
-	mach_msg_trailer_size_t       msgh_trailer_size;
-	mach_port_seqno_t             msgh_seqno;
-	security_token_t              msgh_sender;
-} mach_msg_security_trailer_t;
-
-/*
- * The audit token is an opaque token which identifies
- * Mach tasks and senders of Mach messages as subjects
- * to the BSM audit system.  Only the appropriate BSM
- * library routines should be used to interpret the
- * contents of the audit token as the representation
- * of the subject identity within the token may change
- * over time.
- */
-typedef struct{
-	unsigned int                  val[8];
-} audit_token_t;
-
-typedef struct{
-	mach_msg_trailer_type_t       msgh_trailer_type;
-	mach_msg_trailer_size_t       msgh_trailer_size;
-	mach_port_seqno_t             msgh_seqno;
-	security_token_t              msgh_sender;
-	audit_token_t                 msgh_audit;
-} mach_msg_audit_trailer_t;
-
-typedef struct{
-	mach_msg_trailer_type_t       msgh_trailer_type;
-	mach_msg_trailer_size_t       msgh_trailer_size;
-	mach_port_seqno_t             msgh_seqno;
-	security_token_t              msgh_sender;
-	audit_token_t                 msgh_audit;
-	mach_port_context_t           msgh_context;
-} mach_msg_context_trailer_t;
-
-
-
-typedef struct{
-	mach_port_name_t sender;
-} msg_labels_t;
-
-/*
- *  Trailer type to pass MAC policy label info as a mach message trailer.
- *
- */
-
-typedef struct{
-	mach_msg_trailer_type_t       msgh_trailer_type;
-	mach_msg_trailer_size_t       msgh_trailer_size;
-	mach_port_seqno_t             msgh_seqno;
-	security_token_t              msgh_sender;
-	audit_token_t                 msgh_audit;
-	mach_port_context_t           msgh_context;
-	int                           msgh_ad;
-	msg_labels_t                  msgh_labels;
-} mach_msg_mac_trailer_t;
-
-
-#define MACH_MSG_TRAILER_MINIMUM_SIZE  sizeof(mach_msg_trailer_t)
-
-/*
- * These values can change from release to release - but clearly
- * code cannot request additional trailer elements one was not
- * compiled to understand.  Therefore, it is safe to use this
- * constant when the same module specified the receive options.
- * Otherwise, you run the risk that the options requested by
- * another module may exceed the local modules notion of
- * MAX_TRAILER_SIZE.
- */
-
-typedef mach_msg_mac_trailer_t mach_msg_max_trailer_t;
-#define MAX_TRAILER_SIZE ((mach_msg_size_t)sizeof(mach_msg_max_trailer_t))
-
-/*
- * Legacy requirements keep us from ever updating these defines (even
- * when the format_0 trailers gain new option data fields in the future).
- * Therefore, they shouldn't be used going forward.  Instead, the sizes
- * should be compared against the specific element size requested using
- * REQUESTED_TRAILER_SIZE.
- */
-typedef mach_msg_security_trailer_t mach_msg_format_0_trailer_t;
-
-/*typedef mach_msg_mac_trailer_t mach_msg_format_0_trailer_t;
- */
-
-#define MACH_MSG_TRAILER_FORMAT_0_SIZE sizeof(mach_msg_format_0_trailer_t)
-
-#define   KERNEL_SECURITY_TOKEN_VALUE  { {0, 1} }
-extern const security_token_t KERNEL_SECURITY_TOKEN;
-
-#define   KERNEL_AUDIT_TOKEN_VALUE  { {0, 0, 0, 0, 0, 0, 0, 0} }
-extern const audit_token_t KERNEL_AUDIT_TOKEN;
-
-typedef integer_t mach_msg_options_t;
-
-typedef struct{
-	mach_msg_header_t     header;
-} mach_msg_empty_send_t;
-
-typedef struct{
-	mach_msg_header_t     header;
-	mach_msg_trailer_t    trailer;
-} mach_msg_empty_rcv_t;
-
-typedef union{
-	mach_msg_empty_send_t send;
-	mach_msg_empty_rcv_t  rcv;
-} mach_msg_empty_t;
-
-#pragma pack(pop)
-
-/* utility to round the message size - will become machine dependent */
-#define round_msg(x)    (((mach_msg_size_t)(x) + sizeof (natural_t) - 1) & \
-	                        ~(sizeof (natural_t) - 1))
-
-
-/*
- *  There is no fixed upper bound to the size of Mach messages.
- */
-#define MACH_MSG_SIZE_MAX       ((mach_msg_size_t) ~0)
-
-#if defined(__APPLE_API_PRIVATE)
-/*
- *  But architectural limits of a given implementation, or
- *  temporal conditions may cause unpredictable send failures
- *  for messages larger than MACH_MSG_SIZE_RELIABLE.
- *
- *  In either case, waiting for memory is [currently] outside
- *  the scope of send timeout values provided to IPC.
- */
-#define MACH_MSG_SIZE_RELIABLE  ((mach_msg_size_t) 256 * 1024)
-#endif
-/*
- *  Compatibility definitions, for code written
- *  when there was a msgh_kind instead of msgh_seqno.
- */
-#define MACH_MSGH_KIND_NORMAL           0x00000000
-#define MACH_MSGH_KIND_NOTIFICATION     0x00000001
-#define msgh_kind                       msgh_seqno
-#define mach_msg_kind_t                 mach_port_seqno_t
-
-typedef natural_t mach_msg_type_size_t;
-typedef natural_t mach_msg_type_number_t;
-
-/*
- *  Values received/carried in messages.  Tells the receiver what
- *  sort of port right he now has.
- *
- *  MACH_MSG_TYPE_PORT_NAME is used to transfer a port name
- *  which should remain uninterpreted by the kernel.  (Port rights
- *  are not transferred, just the port name.)
- */
-
-#define MACH_MSG_TYPE_PORT_NONE         0
-
-#define MACH_MSG_TYPE_PORT_NAME         15
-#define MACH_MSG_TYPE_PORT_RECEIVE      MACH_MSG_TYPE_MOVE_RECEIVE
-#define MACH_MSG_TYPE_PORT_SEND         MACH_MSG_TYPE_MOVE_SEND
-#define MACH_MSG_TYPE_PORT_SEND_ONCE    MACH_MSG_TYPE_MOVE_SEND_ONCE
-
-#define MACH_MSG_TYPE_LAST              22              /* Last assigned */
-
-/*
- *  A dummy value.  Mostly used to indicate that the actual value
- *  will be filled in later, dynamically.
- */
-
-#define MACH_MSG_TYPE_POLYMORPHIC       ((mach_msg_type_name_t) -1)
-
-/*
- *	Is a given item a port type?
- */
-
-#define MACH_MSG_TYPE_PORT_ANY(x)                       \
-	(((x) >= MACH_MSG_TYPE_MOVE_RECEIVE) &&         \
-	 ((x) <= MACH_MSG_TYPE_MAKE_SEND_ONCE))
-
-#define MACH_MSG_TYPE_PORT_ANY_SEND(x)                  \
-	(((x) >= MACH_MSG_TYPE_MOVE_SEND) &&            \
-	 ((x) <= MACH_MSG_TYPE_MAKE_SEND_ONCE))
-
-#define MACH_MSG_TYPE_PORT_ANY_RIGHT(x)                 \
-	(((x) >= MACH_MSG_TYPE_MOVE_RECEIVE) &&         \
-	 ((x) <= MACH_MSG_TYPE_MOVE_SEND_ONCE))
-
-typedef integer_t mach_msg_option_t;
-
-#define MACH_MSG_OPTION_NONE    0x00000000
-
-#define MACH_SEND_MSG           0x00000001
-#define MACH_RCV_MSG            0x00000002
-
-#define MACH_RCV_LARGE          0x00000004      /* report large message sizes */
-#define MACH_RCV_LARGE_IDENTITY 0x00000008      /* identify source of large messages */
-
-#define MACH_SEND_TIMEOUT       0x00000010      /* timeout value applies to send */
-#define MACH_SEND_OVERRIDE      0x00000020      /* priority override for send */
-#define MACH_SEND_INTERRUPT     0x00000040      /* don't restart interrupted sends */
-#define MACH_SEND_NOTIFY        0x00000080      /* arm send-possible notify */
-#define MACH_SEND_ALWAYS        0x00010000      /* ignore qlimits - kernel only */
-#define MACH_SEND_TRAILER       0x00020000      /* sender-provided trailer */
-#define MACH_SEND_NOIMPORTANCE  0x00040000      /* msg won't carry importance */
-#define MACH_SEND_NODENAP       MACH_SEND_NOIMPORTANCE
-#define MACH_SEND_IMPORTANCE    0x00080000      /* msg carries importance - kernel only */
-#define MACH_SEND_SYNC_OVERRIDE 0x00100000      /* msg should do sync ipc override */
-#define MACH_SEND_PROPAGATE_QOS 0x00200000      /* IPC should propagate the caller's QoS */
-#define MACH_SEND_SYNC_USE_THRPRI       MACH_SEND_PROPAGATE_QOS /* obsolete name */
-#define MACH_SEND_KERNEL        0x00400000      /* full send from kernel space - kernel only */
-#define MACH_SEND_SYNC_BOOTSTRAP_CHECKIN  0x00800000      /* special reply port should boost thread doing sync bootstrap checkin */
-
-#define MACH_RCV_TIMEOUT        0x00000100      /* timeout value applies to receive */
-#define MACH_RCV_NOTIFY         0x00000000      /* legacy name (value was: 0x00000200) */
-#define MACH_RCV_INTERRUPT      0x00000400      /* don't restart interrupted receive */
-#define MACH_RCV_VOUCHER        0x00000800      /* willing to receive voucher port */
-#define MACH_RCV_OVERWRITE      0x00000000      /* scatter receive (deprecated) */
-#define MACH_RCV_GUARDED_DESC   0x00001000      /* Can receive new guarded descriptor */
-#define MACH_RCV_SYNC_WAIT      0x00004000      /* sync waiter waiting for rcv */
-#define MACH_RCV_SYNC_PEEK      0x00008000      /* sync waiter waiting to peek */
-
-#define MACH_MSG_STRICT_REPLY   0x00000200      /* Enforce specific properties about the reply port, and
-	                                         * the context in which a thread replies to a message.
-	                                         * This flag must be passed on both the SEND and RCV */
-
-
-/*
- * NOTE: a 0x00------ RCV mask implies to ask for
- * a MACH_MSG_TRAILER_FORMAT_0 with 0 Elements,
- * which is equivalent to a mach_msg_trailer_t.
- *
- * XXXMAC: unlike the rest of the MACH_RCV_* flags, MACH_RCV_TRAILER_LABELS
- * needs its own private bit since we only calculate its fields when absolutely
- * required.
- */
-#define MACH_RCV_TRAILER_NULL   0
-#define MACH_RCV_TRAILER_SEQNO  1
-#define MACH_RCV_TRAILER_SENDER 2
-#define MACH_RCV_TRAILER_AUDIT  3
-#define MACH_RCV_TRAILER_CTX    4
-#define MACH_RCV_TRAILER_AV     7
-#define MACH_RCV_TRAILER_LABELS 8
-
-#define MACH_RCV_TRAILER_TYPE(x)     (((x) & 0xf) << 28)
-#define MACH_RCV_TRAILER_ELEMENTS(x) (((x) & 0xf) << 24)
-#define MACH_RCV_TRAILER_MASK        ((0xf << 24))
-
-#define GET_RCV_ELEMENTS(y) (((y) >> 24) & 0xf)
-
-
-/*
- * XXXMAC: note that in the case of MACH_RCV_TRAILER_LABELS,
- * we just fall through to mach_msg_max_trailer_t.
- * This is correct behavior since mach_msg_max_trailer_t is defined as
- * mac_msg_mac_trailer_t which is used for the LABELS trailer.
- * It also makes things work properly if MACH_RCV_TRAILER_LABELS is ORed
- * with one of the other options.
- */
-
-#define REQUESTED_TRAILER_SIZE_NATIVE(y)                        \
-	((mach_msg_trailer_size_t)                              \
-	 ((GET_RCV_ELEMENTS(y) == MACH_RCV_TRAILER_NULL) ?      \
-	  sizeof(mach_msg_trailer_t) :                          \
-	  ((GET_RCV_ELEMENTS(y) == MACH_RCV_TRAILER_SEQNO) ?    \
-	   sizeof(mach_msg_seqno_trailer_t) :                   \
-	  ((GET_RCV_ELEMENTS(y) == MACH_RCV_TRAILER_SENDER) ?   \
-	   sizeof(mach_msg_security_trailer_t) :                \
-	   ((GET_RCV_ELEMENTS(y) == MACH_RCV_TRAILER_AUDIT) ?   \
-	    sizeof(mach_msg_audit_trailer_t) :                  \
-	    ((GET_RCV_ELEMENTS(y) == MACH_RCV_TRAILER_CTX) ?    \
-	     sizeof(mach_msg_context_trailer_t) :               \
-	     ((GET_RCV_ELEMENTS(y) == MACH_RCV_TRAILER_AV) ?    \
-	      sizeof(mach_msg_mac_trailer_t) :                  \
-	     sizeof(mach_msg_max_trailer_t))))))))
-
-
-#define REQUESTED_TRAILER_SIZE(y) REQUESTED_TRAILER_SIZE_NATIVE(y)
-
-/*
- *  Much code assumes that mach_msg_return_t == kern_return_t.
- *  This definition is useful for descriptive purposes.
- *
- *  See <mach/error.h> for the format of error codes.
- *  IPC errors are system 4.  Send errors are subsystem 0;
- *  receive errors are subsystem 1.  The code field is always non-zero.
- *  The high bits of the code field communicate extra information
- *  for some error codes.  MACH_MSG_MASK masks off these special bits.
- */
-
-typedef kern_return_t mach_msg_return_t;
-
-#define MACH_MSG_SUCCESS                0x00000000
-
-
-#define MACH_MSG_MASK                   0x00003e00
-/* All special error code bits defined below. */
-#define MACH_MSG_IPC_SPACE              0x00002000
-/* No room in IPC name space for another capability name. */
-#define MACH_MSG_VM_SPACE               0x00001000
-/* No room in VM address space for out-of-line memory. */
-#define MACH_MSG_IPC_KERNEL             0x00000800
-/* Kernel resource shortage handling an IPC capability. */
-#define MACH_MSG_VM_KERNEL              0x00000400
-/* Kernel resource shortage handling out-of-line memory. */
-
-#define MACH_SEND_IN_PROGRESS           0x10000001
-/* Thread is waiting to send.  (Internal use only.) */
-#define MACH_SEND_INVALID_DATA          0x10000002
-/* Bogus in-line data. */
-#define MACH_SEND_INVALID_DEST          0x10000003
-/* Bogus destination port. */
-#define MACH_SEND_TIMED_OUT             0x10000004
-/* Message not sent before timeout expired. */
-#define MACH_SEND_INVALID_VOUCHER       0x10000005
-/* Bogus voucher port. */
-#define MACH_SEND_INTERRUPTED           0x10000007
-/* Software interrupt. */
-#define MACH_SEND_MSG_TOO_SMALL         0x10000008
-/* Data doesn't contain a complete message. */
-#define MACH_SEND_INVALID_REPLY         0x10000009
-/* Bogus reply port. */
-#define MACH_SEND_INVALID_RIGHT         0x1000000a
-/* Bogus port rights in the message body. */
-#define MACH_SEND_INVALID_NOTIFY        0x1000000b
-/* Bogus notify port argument. */
-#define MACH_SEND_INVALID_MEMORY        0x1000000c
-/* Invalid out-of-line memory pointer. */
-#define MACH_SEND_NO_BUFFER             0x1000000d
-/* No message buffer is available. */
-#define MACH_SEND_TOO_LARGE             0x1000000e
-/* Send is too large for port */
-#define MACH_SEND_INVALID_TYPE          0x1000000f
-/* Invalid msg-type specification. */
-#define MACH_SEND_INVALID_HEADER        0x10000010
-/* A field in the header had a bad value. */
-#define MACH_SEND_INVALID_TRAILER       0x10000011
-/* The trailer to be sent does not match kernel format. */
-#define MACH_SEND_INVALID_CONTEXT       0x10000012
-/* The sending thread context did not match the context on the dest port */
-#define MACH_SEND_INVALID_RT_OOL_SIZE   0x10000015
-/* compatibility: no longer a returned error */
-#define MACH_SEND_NO_GRANT_DEST         0x10000016
-/* The destination port doesn't accept ports in body */
-
-#define MACH_RCV_IN_PROGRESS            0x10004001
-/* Thread is waiting for receive.  (Internal use only.) */
-#define MACH_RCV_INVALID_NAME           0x10004002
-/* Bogus name for receive port/port-set. */
-#define MACH_RCV_TIMED_OUT              0x10004003
-/* Didn't get a message within the timeout value. */
-#define MACH_RCV_TOO_LARGE              0x10004004
-/* Message buffer is not large enough for inline data. */
-#define MACH_RCV_INTERRUPTED            0x10004005
-/* Software interrupt. */
-#define MACH_RCV_PORT_CHANGED           0x10004006
-/* compatibility: no longer a returned error */
-#define MACH_RCV_INVALID_NOTIFY         0x10004007
-/* Bogus notify port argument. */
-#define MACH_RCV_INVALID_DATA           0x10004008
-/* Bogus message buffer for inline data. */
-#define MACH_RCV_PORT_DIED              0x10004009
-/* Port/set was sent away/died during receive. */
-#define MACH_RCV_IN_SET                 0x1000400a
-/* compatibility: no longer a returned error */
-#define MACH_RCV_HEADER_ERROR           0x1000400b
-/* Error receiving message header.  See special bits. */
-#define MACH_RCV_BODY_ERROR             0x1000400c
-/* Error receiving message body.  See special bits. */
-#define MACH_RCV_INVALID_TYPE           0x1000400d
-/* Invalid msg-type specification in scatter list. */
-#define MACH_RCV_SCATTER_SMALL          0x1000400e
-/* Out-of-line overwrite region is not large enough */
-#define MACH_RCV_INVALID_TRAILER        0x1000400f
-/* trailer type or number of trailer elements not supported */
-#define MACH_RCV_IN_PROGRESS_TIMED      0x10004011
-/* Waiting for receive with timeout. (Internal use only.) */
-#define MACH_RCV_INVALID_REPLY          0x10004012
-/* invalid reply port used in a STRICT_REPLY message */
-
-
-
-__BEGIN_DECLS
-
-/*
- *	Routine:	mach_msg_overwrite
- *	Purpose:
- *		Send and/or receive a message.  If the message operation
- *		is interrupted, and the user did not request an indication
- *		of that fact, then restart the appropriate parts of the
- *		operation silently (trap version does not restart).
- *
- *		Distinct send and receive buffers may be specified.  If
- *		no separate receive buffer is specified, the msg parameter
- *		will be used for both send and receive operations.
- *
- *		In addition to a distinct receive buffer, that buffer may
- *		already contain scatter control information to direct the
- *		receiving of the message.
- */
-__WATCHOS_PROHIBITED __TVOS_PROHIBITED
-extern mach_msg_return_t        mach_msg_overwrite(
-	mach_msg_header_t *msg,
-	mach_msg_option_t option,
-	mach_msg_size_t send_size,
-	mach_msg_size_t rcv_size,
-	mach_port_name_t rcv_name,
-	mach_msg_timeout_t timeout,
-	mach_port_name_t notify,
-	mach_msg_header_t *rcv_msg,
-	mach_msg_size_t rcv_limit);
-
-
-/*
- *	Routine:	mach_msg
- *	Purpose:
- *		Send and/or receive a message.  If the message operation
- *		is interrupted, and the user did not request an indication
- *		of that fact, then restart the appropriate parts of the
- *		operation silently (trap version does not restart).
- */
-__WATCHOS_PROHIBITED __TVOS_PROHIBITED
-extern mach_msg_return_t        mach_msg(
-	mach_msg_header_t *msg,
-	mach_msg_option_t option,
-	mach_msg_size_t send_size,
-	mach_msg_size_t rcv_size,
-	mach_port_name_t rcv_name,
-	mach_msg_timeout_t timeout,
-	mach_port_name_t notify);
-
-/*
- *	Routine:	mach_voucher_deallocate
- *	Purpose:
- *		Deallocate a mach voucher created or received in a message.  Drops
- *		one (send right) reference to the voucher.
- */
-__WATCHOS_PROHIBITED __TVOS_PROHIBITED
-extern kern_return_t            mach_voucher_deallocate(
-	mach_port_name_t voucher);
-
-
-__END_DECLS
-
-#endif  /* _MACH_MESSAGE_H_ */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/mig.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/mig.h
deleted file mode 100644
index 066ffa75..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/mig.h
+++ /dev/null
@@ -1,180 +0,0 @@
-/*
- * Copyright (c) 2000-2007 Apple Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-
-/*
- * Mach MIG Subsystem Interfaces
- */
-
-#ifndef _MACH_MIG_H_
-#define _MACH_MIG_H_
-
-#include <stdint.h>
-#include <mach/port.h>
-#include <mach/message.h>
-#include <mach/vm_types.h>
-
-#include <sys/cdefs.h>
-
-#if defined(MACH_KERNEL)
-
-#if !defined(__MigTypeCheck)
-/* Turn MIG type checking on by default for kernel */
-#define __MigTypeCheck 1
-#endif
-
-#define __MigKernelSpecificCode 1
-#define _MIG_KERNEL_SPECIFIC_CODE_ 1
-
-#elif !defined(__MigTypeCheck)
-
-#if defined(TypeCheck)
-/* use legacy setting (temporary) */
-#define __MigTypeCheck TypeCheck
-#else
-/* default MIG type checking on */
-#define __MigTypeCheck 1
-#endif
-
-#endif /* !defined(MACH_KERNEL) && !defined(__MigTypeCheck) */
-
-/*
- * Pack MIG message structs.
- * This is an indicator of the need to view shared structs in a
- * binary-compatible format - and MIG message structs are no different.
- */
-#define __MigPackStructs 1
-
-/*
- * Definition for MIG-generated server stub routines.  These routines
- * unpack the request message, call the server procedure, and pack the
- * reply message.
- */
-typedef void    (*mig_stub_routine_t) (mach_msg_header_t *InHeadP,
-    mach_msg_header_t *OutHeadP);
-
-typedef mig_stub_routine_t mig_routine_t;
-
-/*
- * Definition for MIG-generated server routine.  This routine takes a
- * message, and returns the appropriate stub function for handling that
- * message.
- */
-typedef mig_routine_t (*mig_server_routine_t) (mach_msg_header_t *InHeadP);
-
-/*
- * Generic definition for implementation routines.  These routines do
- * the real work associated with this request.  This generic type is
- * used for keeping the pointers in the subsystem array.
- */
-typedef kern_return_t   (*mig_impl_routine_t)(void);
-
-typedef mach_msg_type_descriptor_t routine_arg_descriptor;
-typedef mach_msg_type_descriptor_t *routine_arg_descriptor_t;
-typedef mach_msg_type_descriptor_t *mig_routine_arg_descriptor_t;
-
-#define MIG_ROUTINE_ARG_DESCRIPTOR_NULL ((mig_routine_arg_descriptor_t)0)
-
-struct routine_descriptor {
-	mig_impl_routine_t      impl_routine;   /* Server work func pointer   */
-	mig_stub_routine_t      stub_routine;   /* Unmarshalling func pointer */
-	unsigned int            argc;                   /* Number of argument words   */
-	unsigned int            descr_count;    /* Number complex descriptors */
-	routine_arg_descriptor_t
-	    arg_descr;                                                  /* pointer to descriptor array*/
-	unsigned int            max_reply_msg;  /* Max size for reply msg     */
-};
-typedef struct routine_descriptor *routine_descriptor_t;
-
-typedef struct routine_descriptor mig_routine_descriptor;
-typedef mig_routine_descriptor *mig_routine_descriptor_t;
-
-#define MIG_ROUTINE_DESCRIPTOR_NULL ((mig_routine_descriptor_t)0)
-
-typedef struct mig_subsystem {
-	mig_server_routine_t server;            /* pointer to demux routine	*/
-	mach_msg_id_t            start;                 /* Min routine number	    */
-	mach_msg_id_t            end;                   /* Max routine number + 1   */
-	mach_msg_size_t          maxsize;               /* Max reply message size   */
-	vm_address_t             reserved;              /* reserved for MIG use	    */
-	mig_routine_descriptor
-	    routine[1];                                         /* Routine descriptor array */
-} *mig_subsystem_t;
-
-#define MIG_SUBSYSTEM_NULL              ((mig_subsystem_t)0)
-
-typedef struct mig_symtab {
-	char                            *ms_routine_name;
-	int                                     ms_routine_number;
-	void                            (*ms_routine)(void);    /* Since the functions in the
-	                                                         * symbol table have unknown
-	                                                         * signatures, this is the best
-	                                                         * we can do...
-	                                                         */
-} mig_symtab_t;
-
-/*
- * A compiler attribute for annotating all MIG server routines and other
- * functions that should behave similarly.  Allows the compiler to perform
- * additional static bug-finding over them.
- */
-#if __has_attribute(mig_server_routine)
-#define MIG_SERVER_ROUTINE __attribute__((mig_server_routine))
-#else
-#define MIG_SERVER_ROUTINE
-#endif
-
-
-__BEGIN_DECLS
-
-/* Client side reply port allocate */
-extern mach_port_t mig_get_reply_port(void);
-
-/* Client side reply port deallocate */
-extern void mig_dealloc_reply_port(mach_port_t reply_port);
-
-/* Client side reply port "deallocation" */
-extern void mig_put_reply_port(mach_port_t reply_port);
-
-/* Bounded string copy */
-extern int mig_strncpy(char     *dest, const char *src, int     len);
-extern int mig_strncpy_zerofill(char    *dest, const char *src, int     len);
-
-
-/* Allocate memory for out-of-line mig structures */
-extern void mig_allocate(vm_address_t *, vm_size_t);
-
-/* Deallocate memory used for out-of-line mig structures */
-extern void mig_deallocate(vm_address_t, vm_size_t);
-
-
-__END_DECLS
-
-#endif  /* _MACH_MIG_H_ */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/mig_errors.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/mig_errors.h
deleted file mode 100644
index 418a05da..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/mig_errors.h
+++ /dev/null
@@ -1,125 +0,0 @@
-/*
- * Copyright (c) 2000-2007 Apple Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-/*
- * Mach Operating System
- * Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University
- * All Rights Reserved.
- *
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- */
-/*
- */
-/*
- * Mach Interface Generator errors
- *
- */
-
-#ifndef _MACH_MIG_ERRORS_H_
-#define _MACH_MIG_ERRORS_H_
-
-#include <mach/mig.h>
-#include <mach/ndr.h>
-#include <mach/message.h>
-#include <mach/kern_return.h>
-
-#include <sys/cdefs.h>
-
-/*
- *	These error codes should be specified as system 4, subsytem 2.
- *	But alas backwards compatibility makes that impossible.
- *	The problem is old clients of new servers (eg, the kernel)
- *	which get strange large error codes when there is a Mig problem
- *	in the server.  Unfortunately, the IPC system doesn't have
- *	the knowledge to convert the codes in this situation.
- */
-
-#define MIG_TYPE_ERROR          -300    /* client type check failure */
-#define MIG_REPLY_MISMATCH      -301    /* wrong reply message ID */
-#define MIG_REMOTE_ERROR        -302    /* server detected error */
-#define MIG_BAD_ID              -303    /* bad request message ID */
-#define MIG_BAD_ARGUMENTS       -304    /* server type check failure */
-#define MIG_NO_REPLY            -305    /* no reply should be send */
-#define MIG_EXCEPTION           -306    /* server raised exception */
-#define MIG_ARRAY_TOO_LARGE     -307    /* array not large enough */
-#define MIG_SERVER_DIED         -308    /* server died */
-#define MIG_TRAILER_ERROR       -309    /* trailer has an unknown format */
-
-/*
- *	Whenever MIG detects an error, it sends back a generic
- *	mig_reply_error_t format message.  Clients must accept
- *	these in addition to the expected reply message format.
- */
-#pragma pack(4)
-typedef struct {
-	mach_msg_header_t       Head;
-	NDR_record_t            NDR;
-	kern_return_t           RetCode;
-} mig_reply_error_t;
-#pragma pack()
-
-
-__BEGIN_DECLS
-
-#if !defined(__NDR_convert__mig_reply_error_t__defined)
-#define __NDR_convert__mig_reply_error_t__defined
-
-static __inline__ void
-__NDR_convert__mig_reply_error_t(__unused mig_reply_error_t *x)
-{
-#if defined(__NDR_convert__int_rep__kern_return_t__defined)
-	if (x->NDR.int_rep != NDR_record.int_rep) {
-		__NDR_convert__int_rep__kern_return_t(&x->RetCode, x->NDR.int_rep);
-	}
-#endif /* __NDR_convert__int_rep__kern_return_t__defined */
-}
-#endif /* !defined(__NDR_convert__mig_reply_error_t__defined) */
-
-__END_DECLS
-
-#endif  /* _MACH_MIG_ERRORS_H_ */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/mig_strncpy_zerofill_support.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/mig_strncpy_zerofill_support.h
deleted file mode 100644
index 92d0ff8e..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/mig_strncpy_zerofill_support.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright (c) 2017 Apple Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-//This dummy header file is created for mig to check when to call mig_strncpy_zerofill.
-//Mig checks if this file is available to include and knows that Libsyscall has the new mig_strncpy_zerofill symbols to link to.
-//Do not delete this file, mig will stop calling mig_strncpy_zerofill.
-
-#ifndef __MACH_MIG_STRNCPY_ZEROFILL_SUPPORT__
-#define __MACH_MIG_STRNCPY_ZEROFILL_SUPPORT__
-
-#endif // __MACH_MIG_STRNCPY_ZEROFILL_SUPPORT__
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/mig_voucher_support.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/mig_voucher_support.h
deleted file mode 100644
index 27e6b601..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/mig_voucher_support.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright (c) 2017 Apple Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-//This dummy header file is created for mig to check when to include voucher code.
-//Mig checks if this file is available to include and knows that Libsyscall has the new voucher symbols to link to.
-//Do not delete this file, mig will stop including vouchers code.
-
-#ifndef __MACH_MIG_VOUCHER_SUPPORT__
-#define __MACH_MIG_VOUCHER_SUPPORT__
-
-#endif // __MACH_MIG_VOUCHER_SUPPORT__
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/ndr.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/ndr.h
deleted file mode 100644
index 61c00ff1..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/ndr.h
+++ /dev/null
@@ -1,207 +0,0 @@
-/*
- * Copyright (c) 2000-2005 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-
-#ifndef _MACH_NDR_H_
-#define _MACH_NDR_H_
-
-#include <stdint.h>
-#include <sys/cdefs.h>
-#include <libkern/OSByteOrder.h>
-
-
-typedef struct {
-	unsigned char       mig_vers;
-	unsigned char       if_vers;
-	unsigned char       reserved1;
-	unsigned char       mig_encoding;
-	unsigned char       int_rep;
-	unsigned char       char_rep;
-	unsigned char       float_rep;
-	unsigned char       reserved2;
-} NDR_record_t;
-
-/*
- * MIG supported protocols for Network Data Representation
- */
-#define  NDR_PROTOCOL_2_0      0
-
-/*
- * NDR 2.0 format flag type definition and values.
- */
-#define  NDR_INT_BIG_ENDIAN    0
-#define  NDR_INT_LITTLE_ENDIAN 1
-#define  NDR_FLOAT_IEEE        0
-#define  NDR_FLOAT_VAX         1
-#define  NDR_FLOAT_CRAY        2
-#define  NDR_FLOAT_IBM         3
-#define  NDR_CHAR_ASCII        0
-#define  NDR_CHAR_EBCDIC       1
-
-extern NDR_record_t NDR_record;
-
-/* NDR conversion off by default */
-
-#if !defined(__NDR_convert__)
-#define __NDR_convert__ 0
-#endif /* !defined(__NDR_convert__) */
-
-#ifndef __NDR_convert__int_rep__
-#define __NDR_convert__int_rep__ __NDR_convert__
-#endif /* __NDR_convert__int_rep__ */
-
-#ifndef __NDR_convert__char_rep__
-#define __NDR_convert__char_rep__ 0
-#endif /* __NDR_convert__char_rep__ */
-
-#ifndef __NDR_convert__float_rep__
-#define __NDR_convert__float_rep__ 0
-#endif /* __NDR_convert__float_rep__ */
-
-#if __NDR_convert__
-
-#define __NDR_convert__NOOP             do ; while (0)
-#define __NDR_convert__UNKNOWN(s)       __NDR_convert__NOOP
-#define __NDR_convert__SINGLE(a, f, r)  do { r((a), (f)); } while (0)
-#define __NDR_convert__ARRAY(a, f, c, r) \
-	do { int __i__, __C__ = (c); \
-	for (__i__ = 0; __i__ < __C__; __i__++) \
-	r(&(a)[__i__], f); } while (0)
-#define __NDR_convert__2DARRAY(a, f, s, c, r) \
-	do { int __i__, __C__ = (c), __S__ = (s); \
-	for (__i__ = 0; __i__ < __C__; __i__++) \
-	r(&(a)[__i__ * __S__], f, __S__); } while (0)
-
-#if __NDR_convert__int_rep__
-
-#define __NDR_READSWAP_assign(a, rs)    do { *(a) = rs(a); } while (0)
-
-#define __NDR_READSWAP__uint16_t(a)     OSReadSwapInt16((void *)a, 0)
-#define __NDR_READSWAP__int16_t(a)      (int16_t)OSReadSwapInt16((void *)a, 0)
-#define __NDR_READSWAP__uint32_t(a)     OSReadSwapInt32((void *)a, 0)
-#define __NDR_READSWAP__int32_t(a)      (int32_t)OSReadSwapInt32((void *)a, 0)
-#define __NDR_READSWAP__uint64_t(a)     OSReadSwapInt64((void *)a, 0)
-#define __NDR_READSWAP__int64_t(a)      (int64_t)OSReadSwapInt64((void *)a, 0)
-
-__BEGIN_DECLS
-
-static __inline__ float
-__NDR_READSWAP__float(float *argp)
-{
-	union {
-		float sv;
-		uint32_t ull;
-	} result;
-	result.ull = __NDR_READSWAP__uint32_t((uint32_t *)argp);
-	return result.sv;
-}
-
-static __inline__ double
-__NDR_READSWAP__double(double *argp)
-{
-	union {
-		double sv;
-		uint64_t ull;
-	} result;
-	result.ull = __NDR_READSWAP__uint64_t((uint64_t *)argp);
-	return result.sv;
-}
-
-__END_DECLS
-
-#define __NDR_convert__int_rep__int16_t__defined
-#define __NDR_convert__int_rep__int16_t(v, f)            \
-	__NDR_READSWAP_assign(v, __NDR_READSWAP__int16_t)
-
-#define __NDR_convert__int_rep__uint16_t__defined
-#define __NDR_convert__int_rep__uint16_t(v, f)           \
-	__NDR_READSWAP_assign(v, __NDR_READSWAP__uint16_t)
-
-#define __NDR_convert__int_rep__int32_t__defined
-#define __NDR_convert__int_rep__int32_t(v, f)            \
-	__NDR_READSWAP_assign(v, __NDR_READSWAP__int32_t)
-
-#define __NDR_convert__int_rep__uint32_t__defined
-#define __NDR_convert__int_rep__uint32_t(v, f)           \
-	__NDR_READSWAP_assign(v, __NDR_READSWAP__uint32_t)
-
-#define __NDR_convert__int_rep__int64_t__defined
-#define __NDR_convert__int_rep__int64_t(v, f)            \
-	__NDR_READSWAP_assign(v, __NDR_READSWAP__int64_t)
-
-#define __NDR_convert__int_rep__uint64_t__defined
-#define __NDR_convert__int_rep__uint64_t(v, f)           \
-	__NDR_READSWAP_assign(v, __NDR_READSWAP__uint64_t)
-
-#define __NDR_convert__int_rep__float__defined
-#define __NDR_convert__int_rep__float(v, f)              \
-	__NDR_READSWAP_assign(v, __NDR_READSWAP__float)
-
-#define __NDR_convert__int_rep__double__defined
-#define __NDR_convert__int_rep__double(v, f)             \
-	__NDR_READSWAP_assign(v, __NDR_READSWAP__double)
-
-#define __NDR_convert__int_rep__boolean_t__defined
-#define __NDR_convert__int_rep__boolean_t(v, f)         \
-	__NDR_convert__int_rep__int32_t(v,f)
-
-#define __NDR_convert__int_rep__kern_return_t__defined
-#define __NDR_convert__int_rep__kern_return_t(v, f)      \
-	__NDR_convert__int_rep__int32_t(v,f)
-
-#define __NDR_convert__int_rep__mach_port_name_t__defined
-#define __NDR_convert__int_rep__mach_port_name_t(v, f)   \
-	__NDR_convert__int_rep__uint32_t(v,f)
-
-#define __NDR_convert__int_rep__mach_msg_type_number_t__defined
-#define __NDR_convert__int_rep__mach_msg_type_number_t(v, f) \
-	__NDR_convert__int_rep__uint32_t(v,f)
-
-#endif /* __NDR_convert__int_rep__ */
-
-#if __NDR_convert__char_rep__
-
-#warning  NDR character representation conversions not implemented yet!
-#define __NDR_convert__char_rep__char(v, f)      __NDR_convert__NOOP
-#define __NDR_convert__char_rep__string(v, f, l)  __NDR_convert__NOOP
-
-#endif /* __NDR_convert__char_rep__ */
-
-#if __NDR_convert__float_rep__
-
-#warning  NDR floating point representation conversions not implemented yet!
-#define __NDR_convert__float_rep__float(v, f)    __NDR_convert__NOOP
-#define __NDR_convert__float_rep__double(v, f)   __NDR_convert__NOOP
-
-#endif /* __NDR_convert__float_rep__ */
-
-#endif /* __NDR_convert__ */
-
-#endif /* _MACH_NDR_H_ */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/notify.defs b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/notify.defs
deleted file mode 100644
index 4aece97b..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/notify.defs
+++ /dev/null
@@ -1,134 +0,0 @@
-/*
- * Copyright (c) 2000-2003 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- * 
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- * 
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- * 
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- * 
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-/* 
- * Mach Operating System
- * Copyright (c) 1991,1990,1989 Carnegie Mellon University
- * All Rights Reserved.
- * 
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- * 
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- * 
- * Carnegie Mellon requests users of this software to return to
- * 
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- * 
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- */
-/*
- */
-
-subsystem 
-#if	KERNEL_USER
-	KernelUser
-#endif
-	notify 64;
-
-#include <mach/std_types.defs>
-
-#if	SEQNOS
-serverprefix do_seqnos_;
-serverdemux seqnos_notify_server;
-#else	/* !SEQNOS */
-serverprefix do_;
-serverdemux notify_server;
-#endif	/* SEQNOS */
-
-/* MACH_NOTIFY_FIRST: 0100 */
-skip;
-
-/* MACH_NOTIFY_PORT_DELETED: 0101 */
-simpleroutine mach_notify_port_deleted(
-		notify	: mach_port_move_send_once_t;
-#if	SEQNOS
-	msgseqno seqno	: mach_port_seqno_t;
-#endif	/* SEQNOS */
-		name	: mach_port_name_t);
-
-#if (KERNEL_USER | MACH_NOTIFY_SEND_POSSIBLE_EXPECTED)
-/* MACH_NOTIFY_SEND_POSSIBLE: 0102 */
-simpleroutine mach_notify_send_possible(
-		notify	: mach_port_move_send_once_t;
-#if	SEQNOS
-	msgseqno seqno	: mach_port_seqno_t;
-#endif	/* SEQNOS */
-		name	: mach_port_name_t);
-#else
-skip;
-#endif
-
-skip;	/* was NOTIFY_OWNERSHIP_RIGHTS: 0103 */
-
-skip;	/* was NOTIFY_RECEIVE_RIGHTS: 0104 */
-
-/* MACH_NOTIFY_PORT_DESTROYED: 0105 */
-simpleroutine mach_notify_port_destroyed(
-		notify	: mach_port_move_send_once_t;
-#if	SEQNOS
-	msgseqno seqno	: mach_port_seqno_t;
-#endif	/* SEQNOS */
-		rights	: mach_port_move_receive_t);
-
-/* MACH_NOTIFY_NO_SENDERS: 0106 */
-simpleroutine mach_notify_no_senders(
-		notify	: mach_port_move_send_once_t;
-#if	SEQNOS
-	msgseqno seqno	: mach_port_seqno_t;
-#endif	/* SEQNOS */
-		mscount	: mach_port_mscount_t);
-
-/* MACH_NOTIFY_SEND_ONCE: 0107 */
-simpleroutine mach_notify_send_once(
-		notify	: mach_port_move_send_once_t
-#if	SEQNOS
-;	msgseqno seqno	: mach_port_seqno_t
-#endif	/* SEQNOS */
-		);
-
-/* MACH_NOTIFY_DEAD_NAME: 0110 */
-simpleroutine mach_notify_dead_name(
-		notify	: mach_port_move_send_once_t;
-#if	SEQNOS
-	msgseqno seqno	: mach_port_seqno_t;
-#endif	/* SEQNOS */
-		name	: mach_port_name_t);
-
-/* vim: set ft=c : */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/notify.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/notify.h
deleted file mode 100644
index 5737dbc9..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/notify.h
+++ /dev/null
@@ -1,141 +0,0 @@
-/*
- * Copyright (c) 2000-2003 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-/*
- * Mach Operating System
- * Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University
- * All Rights Reserved.
- *
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- */
-/*
- */
-/*
- *	File:	mach/notify.h
- *
- *	Kernel notification message definitions.
- */
-
-#ifndef _MACH_NOTIFY_H_
-#define _MACH_NOTIFY_H_
-
-#include <mach/port.h>
-#include <mach/message.h>
-#include <mach/ndr.h>
-
-/*
- *  An alternative specification of the notification interface
- *  may be found in mach/notify.defs.
- */
-
-#define MACH_NOTIFY_FIRST               0100
-#define MACH_NOTIFY_PORT_DELETED        (MACH_NOTIFY_FIRST + 001)
-/* A send or send-once right was deleted. */
-#define MACH_NOTIFY_SEND_POSSIBLE       (MACH_NOTIFY_FIRST + 002)
-/* Now possible to send using specified right */
-#define MACH_NOTIFY_PORT_DESTROYED      (MACH_NOTIFY_FIRST + 005)
-/* A receive right was (would have been) deallocated */
-#define MACH_NOTIFY_NO_SENDERS          (MACH_NOTIFY_FIRST + 006)
-/* Receive right has no extant send rights */
-#define MACH_NOTIFY_SEND_ONCE           (MACH_NOTIFY_FIRST + 007)
-/* An extant send-once right died */
-#define MACH_NOTIFY_DEAD_NAME           (MACH_NOTIFY_FIRST + 010)
-/* Send or send-once right died, leaving a dead-name */
-#define MACH_NOTIFY_LAST                (MACH_NOTIFY_FIRST + 015)
-
-typedef mach_port_t notify_port_t;
-
-/*
- * Hard-coded message structures for receiving Mach port notification
- * messages.  However, they are not actual large enough to receive
- * the largest trailers current exported by Mach IPC (so they cannot
- * be used for space allocations in situations using these new larger
- * trailers).  Instead, the MIG-generated server routines (and
- * related prototypes should be used).
- */
-typedef struct {
-	mach_msg_header_t   not_header;
-	NDR_record_t        NDR;
-	mach_port_name_t not_port;/* MACH_MSG_TYPE_PORT_NAME */
-	mach_msg_format_0_trailer_t trailer;
-} mach_port_deleted_notification_t;
-
-typedef struct {
-	mach_msg_header_t   not_header;
-	NDR_record_t        NDR;
-	mach_port_name_t not_port;/* MACH_MSG_TYPE_PORT_NAME */
-	mach_msg_format_0_trailer_t trailer;
-} mach_send_possible_notification_t;
-
-typedef struct {
-	mach_msg_header_t   not_header;
-	mach_msg_body_t     not_body;
-	mach_msg_port_descriptor_t not_port;/* MACH_MSG_TYPE_PORT_RECEIVE */
-	mach_msg_format_0_trailer_t trailer;
-} mach_port_destroyed_notification_t;
-
-typedef struct {
-	mach_msg_header_t   not_header;
-	NDR_record_t        NDR;
-	mach_msg_type_number_t not_count;
-	mach_msg_format_0_trailer_t trailer;
-} mach_no_senders_notification_t;
-
-typedef struct {
-	mach_msg_header_t   not_header;
-	mach_msg_format_0_trailer_t trailer;
-} mach_send_once_notification_t;
-
-typedef struct {
-	mach_msg_header_t   not_header;
-	NDR_record_t        NDR;
-	mach_port_name_t not_port;/* MACH_MSG_TYPE_PORT_NAME */
-	mach_msg_format_0_trailer_t trailer;
-} mach_dead_name_notification_t;
-
-#endif  /* _MACH_NOTIFY_H_ */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/policy.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/policy.h
deleted file mode 100644
index 836b95f7..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/policy.h
+++ /dev/null
@@ -1,235 +0,0 @@
-/*
- * Copyright (c) 2000-2005 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-/*
- * Mach Operating System
- * Copyright (c) 1991,1990,1989,1988 Carnegie Mellon University
- * All Rights Reserved.
- *
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- */
-/*
- */
-
-#ifndef _MACH_POLICY_H_
-#define _MACH_POLICY_H_
-
-/*
- *	mach/policy.h
- *
- *	Definitions for scheduing policy.
- */
-
-/*
- *  All interfaces defined here are obsolete.
- */
-
-#include <mach/boolean.h>
-#include <mach/message.h>
-#include <mach/vm_types.h>
-
-/*
- *	Old scheduling control interface
- */
-typedef int                             policy_t;
-typedef integer_t                       *policy_info_t;
-typedef integer_t                       *policy_base_t;
-typedef integer_t                       *policy_limit_t;
-
-/*
- *	Policy definitions.  Policies should be powers of 2,
- *	but cannot be or'd together other than to test for a
- *	policy 'class'.
- */
-#define POLICY_NULL             0       /* none			*/
-#define POLICY_TIMESHARE        1       /* timesharing		*/
-#define POLICY_RR               2       /* fixed round robin	*/
-#define POLICY_FIFO             4       /* fixed fifo		*/
-
-#define __NEW_SCHEDULING_FRAMEWORK__
-
-/*
- *	Check if policy is of 'class' fixed-priority.
- */
-#define POLICYCLASS_FIXEDPRI    (POLICY_RR | POLICY_FIFO)
-
-/*
- *	Check if policy is valid.
- */
-#define invalid_policy(policy)                  \
-	((policy) != POLICY_TIMESHARE &&        \
-	 (policy) != POLICY_RR &&               \
-	 (policy) != POLICY_FIFO)
-
-
-/*
- *      Types for TIMESHARE policy
- */
-struct policy_timeshare_base {
-	integer_t               base_priority;
-};
-struct policy_timeshare_limit {
-	integer_t               max_priority;
-};
-struct policy_timeshare_info {
-	integer_t               max_priority;
-	integer_t               base_priority;
-	integer_t               cur_priority;
-	boolean_t               depressed;
-	integer_t               depress_priority;
-};
-
-typedef struct policy_timeshare_base    *policy_timeshare_base_t;
-typedef struct policy_timeshare_limit   *policy_timeshare_limit_t;
-typedef struct policy_timeshare_info    *policy_timeshare_info_t;
-
-typedef struct policy_timeshare_base    policy_timeshare_base_data_t;
-typedef struct policy_timeshare_limit   policy_timeshare_limit_data_t;
-typedef struct policy_timeshare_info    policy_timeshare_info_data_t;
-
-
-#define POLICY_TIMESHARE_BASE_COUNT     ((mach_msg_type_number_t) \
-	(sizeof(struct policy_timeshare_base)/sizeof(integer_t)))
-#define POLICY_TIMESHARE_LIMIT_COUNT    ((mach_msg_type_number_t) \
-	(sizeof(struct policy_timeshare_limit)/sizeof(integer_t)))
-#define POLICY_TIMESHARE_INFO_COUNT     ((mach_msg_type_number_t) \
-	(sizeof(struct policy_timeshare_info)/sizeof(integer_t)))
-
-
-/*
- *	Types for the ROUND ROBIN (RR) policy
- */
-struct policy_rr_base {
-	integer_t               base_priority;
-	integer_t               quantum;
-};
-struct policy_rr_limit {
-	integer_t               max_priority;
-};
-struct policy_rr_info {
-	integer_t               max_priority;
-	integer_t               base_priority;
-	integer_t               quantum;
-	boolean_t               depressed;
-	integer_t               depress_priority;
-};
-
-typedef struct policy_rr_base           *policy_rr_base_t;
-typedef struct policy_rr_limit          *policy_rr_limit_t;
-typedef struct policy_rr_info           *policy_rr_info_t;
-
-typedef struct policy_rr_base           policy_rr_base_data_t;
-typedef struct policy_rr_limit          policy_rr_limit_data_t;
-typedef struct policy_rr_info           policy_rr_info_data_t;
-
-#define POLICY_RR_BASE_COUNT    ((mach_msg_type_number_t)       \
-	(sizeof(struct policy_rr_base)/sizeof(integer_t)))
-#define POLICY_RR_LIMIT_COUNT   ((mach_msg_type_number_t)       \
-	(sizeof(struct policy_rr_limit)/sizeof(integer_t)))
-#define POLICY_RR_INFO_COUNT    ((mach_msg_type_number_t)       \
-	(sizeof(struct policy_rr_info)/sizeof(integer_t)))
-
-
-/*
- *      Types for the FIRST-IN-FIRST-OUT (FIFO) policy
- */
-struct policy_fifo_base {
-	integer_t               base_priority;
-};
-struct policy_fifo_limit {
-	integer_t               max_priority;
-};
-struct policy_fifo_info {
-	integer_t               max_priority;
-	integer_t               base_priority;
-	boolean_t               depressed;
-	integer_t               depress_priority;
-};
-
-typedef struct policy_fifo_base         *policy_fifo_base_t;
-typedef struct policy_fifo_limit        *policy_fifo_limit_t;
-typedef struct policy_fifo_info         *policy_fifo_info_t;
-
-typedef struct policy_fifo_base         policy_fifo_base_data_t;
-typedef struct policy_fifo_limit        policy_fifo_limit_data_t;
-typedef struct policy_fifo_info         policy_fifo_info_data_t;
-
-#define POLICY_FIFO_BASE_COUNT  ((mach_msg_type_number_t)       \
-	(sizeof(struct policy_fifo_base)/sizeof(integer_t)))
-#define POLICY_FIFO_LIMIT_COUNT ((mach_msg_type_number_t)       \
-	(sizeof(struct policy_fifo_limit)/sizeof(integer_t)))
-#define POLICY_FIFO_INFO_COUNT  ((mach_msg_type_number_t)       \
-	(sizeof(struct policy_fifo_info)/sizeof(integer_t)))
-
-/*
- *      Aggregate policy types
- */
-
-struct policy_bases {
-	policy_timeshare_base_data_t    ts;
-	policy_rr_base_data_t           rr;
-	policy_fifo_base_data_t         fifo;
-};
-
-struct policy_limits {
-	policy_timeshare_limit_data_t   ts;
-	policy_rr_limit_data_t          rr;
-	policy_fifo_limit_data_t        fifo;
-};
-
-struct policy_infos {
-	policy_timeshare_info_data_t    ts;
-	policy_rr_info_data_t           rr;
-	policy_fifo_info_data_t         fifo;
-};
-
-typedef struct policy_bases             policy_base_data_t;
-typedef struct policy_limits            policy_limit_data_t;
-typedef struct policy_infos             policy_info_data_t;
-
-#endif  /* _MACH_POLICY_H_ */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/port.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/port.h
deleted file mode 100644
index bd1fc19f..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/port.h
+++ /dev/null
@@ -1,422 +0,0 @@
-/*
- * Copyright (c) 2000-2006 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-/*
- * Mach Operating System
- * Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University
- * All Rights Reserved.
- *
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- */
-/*
- * NOTICE: This file was modified by McAfee Research in 2004 to introduce
- * support for mandatory and extensible security protections.  This notice
- * is included in support of clause 2.2 (b) of the Apple Public License,
- * Version 2.0.
- */
-/*
- */
-/*
- *	File:	mach/port.h
- *
- *	Definition of a Mach port
- *
- *	Mach ports are the endpoints to Mach-implemented communications
- *	channels (usually uni-directional message queues, but other types
- *	also exist).
- *
- *	Unique collections of these endpoints are maintained for each
- *	Mach task.  Each Mach port in the task's collection is given a
- *	[task-local] name to identify it - and the the various "rights"
- *	held by the task for that specific endpoint.
- *
- *	This header defines the types used to identify these Mach ports
- *	and the various rights associated with them.  For more info see:
- *
- *	<mach/mach_port.h> - manipulation of port rights in a given space
- *	<mach/message.h> - message queue [and port right passing] mechanism
- *
- */
-
-#ifndef _MACH_PORT_H_
-#define _MACH_PORT_H_
-
-#include <sys/cdefs.h>
-#include <stdint.h>
-#include <mach/boolean.h>
-#include <mach/machine/vm_types.h>
-
-/*
- *	mach_port_name_t - the local identity for a Mach port
- *
- *	The name is Mach port namespace specific.  It is used to
- *	identify the rights held for that port by the task whose
- *	namespace is implied [or specifically provided].
- *
- *	Use of this type usually implies just a name - no rights.
- *	See mach_port_t for a type that implies a "named right."
- *
- */
-
-typedef natural_t mach_port_name_t;
-typedef mach_port_name_t *mach_port_name_array_t;
-
-
-/*
- *	mach_port_t - a named port right
- *
- *	In user-space, "rights" are represented by the name of the
- *	right in the Mach port namespace.  Even so, this type is
- *	presented as a unique one to more clearly denote the presence
- *	of a right coming along with the name.
- *
- *	Often, various rights for a port held in a single name space
- *	will coalesce and are, therefore, be identified by a single name
- *	[this is the case for send and receive rights].  But not
- *	always [send-once rights currently get a unique name for
- *	each right].
- *
- */
-
-#include <sys/_types.h>
-#include <sys/_types/_mach_port_t.h>
-
-
-typedef mach_port_t                     *mach_port_array_t;
-
-/*
- *  MACH_PORT_NULL is a legal value that can be carried in messages.
- *  It indicates the absence of any port or port rights.  (A port
- *  argument keeps the message from being "simple", even if the
- *  value is MACH_PORT_NULL.)  The value MACH_PORT_DEAD is also a legal
- *  value that can be carried in messages.  It indicates
- *  that a port right was present, but it died.
- */
-
-#define MACH_PORT_NULL          0  /* intentional loose typing */
-#define MACH_PORT_DEAD          ((mach_port_name_t) ~0)
-#define MACH_PORT_VALID(name)                           \
-	        (((name) != MACH_PORT_NULL) &&          \
-	         ((name) != MACH_PORT_DEAD))
-
-
-/*
- *	For kernel-selected [assigned] port names, the name is
- *	comprised of two parts: a generation number and an index.
- *	This approach keeps the exact same name from being generated
- *	and reused too quickly [to catch right/reference counting bugs].
- *	The dividing line between the constituent parts is exposed so
- *	that efficient "mach_port_name_t to data structure pointer"
- *	conversion implementation can be made.  But it is possible
- *	for user-level code to assign their own names to Mach ports.
- *	These are not required to participate in this algorithm.  So
- *	care should be taken before "assuming" this model.
- *
- */
-
-#ifndef NO_PORT_GEN
-
-#define MACH_PORT_INDEX(name)           ((name) >> 8)
-#define MACH_PORT_GEN(name)             (((name) & 0xff) << 24)
-#define MACH_PORT_MAKE(index, gen)      \
-	        (((index) << 8) | (gen) >> 24)
-
-#else   /* NO_PORT_GEN */
-
-#define MACH_PORT_INDEX(name)           (name)
-#define MACH_PORT_GEN(name)             (0)
-#define MACH_PORT_MAKE(index, gen)      (index)
-
-#endif  /* NO_PORT_GEN */
-
-
-/*
- *  These are the different rights a task may have for a port.
- *  The MACH_PORT_RIGHT_* definitions are used as arguments
- *  to mach_port_allocate, mach_port_get_refs, etc, to specify
- *  a particular right to act upon.  The mach_port_names and
- *  mach_port_type calls return bitmasks using the MACH_PORT_TYPE_*
- *  definitions.  This is because a single name may denote
- *  multiple rights.
- */
-
-typedef natural_t mach_port_right_t;
-
-#define MACH_PORT_RIGHT_SEND            ((mach_port_right_t) 0)
-#define MACH_PORT_RIGHT_RECEIVE         ((mach_port_right_t) 1)
-#define MACH_PORT_RIGHT_SEND_ONCE       ((mach_port_right_t) 2)
-#define MACH_PORT_RIGHT_PORT_SET        ((mach_port_right_t) 3)
-#define MACH_PORT_RIGHT_DEAD_NAME       ((mach_port_right_t) 4)
-#define MACH_PORT_RIGHT_LABELH          ((mach_port_right_t) 5) /* obsolete right */
-#define MACH_PORT_RIGHT_NUMBER          ((mach_port_right_t) 6) /* right not implemented */
-
-
-typedef natural_t mach_port_type_t;
-typedef mach_port_type_t *mach_port_type_array_t;
-
-#define MACH_PORT_TYPE(right)                                           \
-	        ((mach_port_type_t)(((mach_port_type_t) 1)              \
-	        << ((right) + ((mach_port_right_t) 16))))
-#define MACH_PORT_TYPE_NONE         ((mach_port_type_t) 0L)
-#define MACH_PORT_TYPE_SEND         MACH_PORT_TYPE(MACH_PORT_RIGHT_SEND)
-#define MACH_PORT_TYPE_RECEIVE      MACH_PORT_TYPE(MACH_PORT_RIGHT_RECEIVE)
-#define MACH_PORT_TYPE_SEND_ONCE    MACH_PORT_TYPE(MACH_PORT_RIGHT_SEND_ONCE)
-#define MACH_PORT_TYPE_PORT_SET     MACH_PORT_TYPE(MACH_PORT_RIGHT_PORT_SET)
-#define MACH_PORT_TYPE_DEAD_NAME    MACH_PORT_TYPE(MACH_PORT_RIGHT_DEAD_NAME)
-#define MACH_PORT_TYPE_LABELH       MACH_PORT_TYPE(MACH_PORT_RIGHT_LABELH) /* obsolete */
-
-
-
-/* Convenient combinations. */
-
-#define MACH_PORT_TYPE_SEND_RECEIVE                                     \
-	        (MACH_PORT_TYPE_SEND|MACH_PORT_TYPE_RECEIVE)
-#define MACH_PORT_TYPE_SEND_RIGHTS                                      \
-	        (MACH_PORT_TYPE_SEND|MACH_PORT_TYPE_SEND_ONCE)
-#define MACH_PORT_TYPE_PORT_RIGHTS                                      \
-	        (MACH_PORT_TYPE_SEND_RIGHTS|MACH_PORT_TYPE_RECEIVE)
-#define MACH_PORT_TYPE_PORT_OR_DEAD                                     \
-	        (MACH_PORT_TYPE_PORT_RIGHTS|MACH_PORT_TYPE_DEAD_NAME)
-#define MACH_PORT_TYPE_ALL_RIGHTS                                       \
-	        (MACH_PORT_TYPE_PORT_OR_DEAD|MACH_PORT_TYPE_PORT_SET)
-
-/* Dummy type bits that mach_port_type/mach_port_names can return. */
-
-#define MACH_PORT_TYPE_DNREQUEST                0x80000000
-#define MACH_PORT_TYPE_SPREQUEST                0x40000000
-#define MACH_PORT_TYPE_SPREQUEST_DELAYED        0x20000000
-
-/* User-references for capabilities. */
-
-typedef natural_t mach_port_urefs_t;
-typedef integer_t mach_port_delta_t;                    /* change in urefs */
-
-/* Attributes of ports.  (See mach_port_get_receive_status.) */
-
-typedef natural_t mach_port_seqno_t;            /* sequence number */
-typedef natural_t mach_port_mscount_t;          /* make-send count */
-typedef natural_t mach_port_msgcount_t;         /* number of msgs */
-typedef natural_t mach_port_rights_t;           /* number of rights */
-
-/*
- *	Are there outstanding send rights for a given port?
- */
-#define MACH_PORT_SRIGHTS_NONE          0               /* no srights */
-#define MACH_PORT_SRIGHTS_PRESENT       1               /* srights */
-typedef unsigned int mach_port_srights_t;       /* status of send rights */
-
-typedef struct mach_port_status {
-	mach_port_rights_t      mps_pset;       /* count of containing port sets */
-	mach_port_seqno_t       mps_seqno;      /* sequence number */
-	mach_port_mscount_t     mps_mscount;    /* make-send count */
-	mach_port_msgcount_t    mps_qlimit;     /* queue limit */
-	mach_port_msgcount_t    mps_msgcount;   /* number in the queue */
-	mach_port_rights_t      mps_sorights;   /* how many send-once rights */
-	boolean_t               mps_srights;    /* do send rights exist? */
-	boolean_t               mps_pdrequest;  /* port-deleted requested? */
-	boolean_t               mps_nsrequest;  /* no-senders requested? */
-	natural_t               mps_flags;              /* port flags */
-} mach_port_status_t;
-
-/* System-wide values for setting queue limits on a port */
-#define MACH_PORT_QLIMIT_ZERO           (0)
-#define MACH_PORT_QLIMIT_BASIC          (5)
-#define MACH_PORT_QLIMIT_SMALL          (16)
-#define MACH_PORT_QLIMIT_LARGE          (1024)
-#define MACH_PORT_QLIMIT_KERNEL         (65534)
-#define MACH_PORT_QLIMIT_MIN            MACH_PORT_QLIMIT_ZERO
-#define MACH_PORT_QLIMIT_DEFAULT        MACH_PORT_QLIMIT_BASIC
-#define MACH_PORT_QLIMIT_MAX            MACH_PORT_QLIMIT_LARGE
-
-typedef struct mach_port_limits {
-	mach_port_msgcount_t    mpl_qlimit;     /* number of msgs */
-} mach_port_limits_t;
-
-/* Possible values for mps_flags (part of mach_port_status_t) */
-#define MACH_PORT_STATUS_FLAG_TEMPOWNER         0x01
-#define MACH_PORT_STATUS_FLAG_GUARDED           0x02
-#define MACH_PORT_STATUS_FLAG_STRICT_GUARD      0x04
-#define MACH_PORT_STATUS_FLAG_IMP_DONATION      0x08
-#define MACH_PORT_STATUS_FLAG_REVIVE            0x10
-#define MACH_PORT_STATUS_FLAG_TASKPTR           0x20
-#define MACH_PORT_STATUS_FLAG_GUARD_IMMOVABLE_RECEIVE 0x40
-#define MACH_PORT_STATUS_FLAG_NO_GRANT          0x80
-
-typedef struct mach_port_info_ext {
-	mach_port_status_t      mpie_status;
-	mach_port_msgcount_t    mpie_boost_cnt;
-	uint32_t                reserved[6];
-} mach_port_info_ext_t;
-
-typedef integer_t *mach_port_info_t;            /* varying array of natural_t */
-
-/* Flavors for mach_port_get/set_attributes() */
-typedef int     mach_port_flavor_t;
-#define MACH_PORT_LIMITS_INFO           1       /* uses mach_port_limits_t */
-#define MACH_PORT_RECEIVE_STATUS        2       /* uses mach_port_status_t */
-#define MACH_PORT_DNREQUESTS_SIZE       3       /* info is int */
-#define MACH_PORT_TEMPOWNER             4       /* indicates receive right will be reassigned to another task */
-#define MACH_PORT_IMPORTANCE_RECEIVER   5       /* indicates recieve right accepts priority donation */
-#define MACH_PORT_DENAP_RECEIVER        6       /* indicates receive right accepts de-nap donation */
-#define MACH_PORT_INFO_EXT              7       /* uses mach_port_info_ext_t */
-
-#define MACH_PORT_LIMITS_INFO_COUNT     ((natural_t) \
-	(sizeof(mach_port_limits_t)/sizeof(natural_t)))
-#define MACH_PORT_RECEIVE_STATUS_COUNT  ((natural_t) \
-	(sizeof(mach_port_status_t)/sizeof(natural_t)))
-#define MACH_PORT_DNREQUESTS_SIZE_COUNT 1
-#define MACH_PORT_INFO_EXT_COUNT        ((natural_t) \
-	(sizeof(mach_port_info_ext_t)/sizeof(natural_t)))
-/*
- * Structure used to pass information about port allocation requests.
- * Must be padded to 64-bits total length.
- */
-typedef struct mach_port_qos {
-	unsigned int            name:1;         /* name given */
-	unsigned int            prealloc:1;     /* prealloced message */
-	boolean_t               pad1:30;
-	natural_t               len;
-} mach_port_qos_t;
-
-/* Mach Port Guarding definitions */
-
-/*
- * Flags for mach_port_options (used for
- * invocation of mach_port_construct).
- * Indicates attributes to be set for the newly
- * allocated port.
- */
-#define MPO_CONTEXT_AS_GUARD    0x01    /* Add guard to the port */
-#define MPO_QLIMIT              0x02    /* Set qlimit for the port msg queue */
-#define MPO_TEMPOWNER           0x04    /* Set the tempowner bit of the port */
-#define MPO_IMPORTANCE_RECEIVER 0x08    /* Mark the port as importance receiver */
-#define MPO_INSERT_SEND_RIGHT   0x10    /* Insert a send right for the port */
-#define MPO_STRICT              0x20    /* Apply strict guarding for port */
-#define MPO_DENAP_RECEIVER      0x40    /* Mark the port as App de-nap receiver */
-#define MPO_IMMOVABLE_RECEIVE   0x80    /* Mark the port as immovable; protected by the guard context */
-/*
- * Structure to define optional attributes for a newly
- * constructed port.
- */
-typedef struct mach_port_options {
-	uint32_t                flags;          /* Flags defining attributes for port */
-	mach_port_limits_t      mpl;            /* Message queue limit for port */
-	uint64_t                reserved[2];    /* Reserved */
-}mach_port_options_t;
-
-typedef mach_port_options_t *mach_port_options_ptr_t;
-
-/*
- * EXC_GUARD represents a guard violation for both
- * mach ports and file descriptors. GUARD_TYPE_ is used
- * to differentiate among them.
- */
-#define GUARD_TYPE_MACH_PORT    0x1
-
-/* Reasons for exception for a guarded mach port */
-enum mach_port_guard_exception_codes {
-	kGUARD_EXC_DESTROY                       = 1u << 0,
-	kGUARD_EXC_MOD_REFS                      = 1u << 1,
-	kGUARD_EXC_SET_CONTEXT               = 1u << 2,
-	kGUARD_EXC_UNGUARDED                 = 1u << 3,
-	kGUARD_EXC_INCORRECT_GUARD           = 1u << 4,
-	kGUARD_EXC_IMMOVABLE                 = 1u << 5,
-	kGUARD_EXC_STRICT_REPLY              = 1u << 6,
-	/* start of [optionally] non-fatal guards */
-	kGUARD_EXC_INVALID_RIGHT         = 1u << 8,
-	kGUARD_EXC_INVALID_NAME          = 1u << 9,
-	kGUARD_EXC_INVALID_VALUE         = 1u << 10,
-	kGUARD_EXC_INVALID_ARGUMENT      = 1u << 11,
-	kGUARD_EXC_RIGHT_EXISTS          = 1u << 12,
-	kGUARD_EXC_KERN_NO_SPACE         = 1u << 13,
-	kGUARD_EXC_KERN_FAILURE          = 1u << 14,
-	kGUARD_EXC_KERN_RESOURCE         = 1u << 15,
-	kGUARD_EXC_SEND_INVALID_REPLY    = 1u << 16,
-	kGUARD_EXC_SEND_INVALID_VOUCHER  = 1u << 17,
-	kGUARD_EXC_SEND_INVALID_RIGHT    = 1u << 18,
-	kGUARD_EXC_RCV_INVALID_NAME      = 1u << 19,
-	kGUARD_EXC_RCV_GUARDED_DESC      = 1u << 20, /* should never be fatal; for development only */
-};
-
-#define MAX_FATAL_kGUARD_EXC_CODE (1u << 6)
-
-/*
- * These flags are used as bits in the subcode of kGUARD_EXC_STRICT_REPLY exceptions.
- */
-#define MPG_FLAGS_STRICT_REPLY_INVALID_REPLY_DISP  (0x01ull << 56)
-#define MPG_FLAGS_STRICT_REPLY_INVALID_REPLY_PORT  (0x02ull << 56)
-#define MPG_FLAGS_STRICT_REPLY_INVALID_VOUCHER     (0x04ull << 56)
-#define MPG_FLAGS_STRICT_REPLY_NO_BANK_ATTR        (0x08ull << 56)
-#define MPG_FLAGS_STRICT_REPLY_MISMATCHED_PERSONA  (0x10ull << 56)
-#define MPG_FLAGS_STRICT_REPLY_MASK                (0xffull << 56)
-
-/*
- * Flags for mach_port_guard_with_flags. These flags extend
- * the attributes associated with a guarded port.
- */
-#define MPG_STRICT              0x01    /* Apply strict guarding for a port */
-#define MPG_IMMOVABLE_RECEIVE   0x02    /* Receive right cannot be moved out of the space */
-
-#if     !__DARWIN_UNIX03 && !defined(_NO_PORT_T_FROM_MACH)
-/*
- *  Mach 3.0 renamed everything to have mach_ in front of it.
- *  These types and macros are provided for backward compatibility
- *	but are deprecated.
- */
-typedef mach_port_t             port_t;
-typedef mach_port_name_t        port_name_t;
-typedef mach_port_name_t        *port_name_array_t;
-
-#define PORT_NULL               ((port_t) 0)
-#define PORT_DEAD               ((port_t) ~0)
-#define PORT_VALID(name) \
-	        ((port_t)(name) != PORT_NULL && (port_t)(name) != PORT_DEAD)
-
-#endif  /* !__DARWIN_UNIX03 && !_NO_PORT_T_FROM_MACH */
-
-#endif  /* _MACH_PORT_H_ */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/port_obj.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/port_obj.h
deleted file mode 100644
index 99165c74..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/port_obj.h
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
- * Copyright (c) 2003 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-
-/*
- * Define a service to map from a kernel-generated port name
- * to server-defined "type" and "value" data to be associated
- * with the port.
- */
-
-#ifndef PORT_OBJ_H
-#define PORT_OBJ_H
-
-#include <mach/port.h>
-
-struct port_obj_tentry {
-	void *pos_value;
-	int pos_type;
-};
-
-#include <sys/cdefs.h>
-
-__BEGIN_DECLS
-extern void port_obj_init(int);
-__END_DECLS
-
-extern struct port_obj_tentry *port_obj_table;
-extern int port_obj_table_size;
-
-#ifndef PORT_OBJ_ASSERT
-
-#define port_set_obj_value_type(pname, value, type)     \
-do {                                                    \
-	int ndx;                                        \
-                                                        \
-	if (!port_obj_table)                            \
-	        port_obj_init(port_obj_table_size);     \
-	ndx = MACH_PORT_INDEX(pname);                   \
-	port_obj_table[ndx].pos_value = (value);        \
-	port_obj_table[ndx].pos_type = (type);          \
-} while (0)
-
-#define port_get_obj_value(pname)                       \
-	(port_obj_table[MACH_PORT_INDEX(pname)].pos_value)
-
-#define port_get_obj_type(pname)                        \
-	(port_obj_table[MACH_PORT_INDEX(pname)].pos_type)
-
-#else   /* PORT_OBJ_ASSERT */
-
-#define port_set_obj_value_type(pname, value, type)     \
-do {                                                    \
-	int ndx;                                        \
-                                                        \
-	if (!port_obj_table)                            \
-	        port_obj_init(port_obj_table_size);     \
-	ndx = MACH_PORT_INDEX(pname);                   \
-	assert(ndx > 0);                                \
-	assert(ndx < port_obj_table_size);              \
-	port_obj_table[ndx].pos_value = (value);        \
-	port_obj_table[ndx].pos_type = (type);          \
-} while (0)
-
-#define port_get_obj_value(pname)                               \
-	((MACH_PORT_INDEX(pname) < (unsigned)port_obj_table_size) ?     \
-	port_obj_table[MACH_PORT_INDEX(pname)].pos_value :      \
-	(panic("port_get_obj_value: index too big"), (void *)-1))
-
-#define port_get_obj_type(pname)                                \
-	((MACH_PORT_INDEX(pname) < (unsigned)port_obj_table_size) ?     \
-	port_obj_table[MACH_PORT_INDEX(pname)].pos_type :       \
-	(panic("port_get_obj_type: index too big"), -1))
-
-#endif  /* PORT_OBJ_ASSERT */
-
-#endif  /* PORT_OBJ_H */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/processor.defs b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/processor.defs
deleted file mode 100644
index 1503c313..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/processor.defs
+++ /dev/null
@@ -1,139 +0,0 @@
-/*
- * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- * 
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- * 
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- * 
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- * 
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_FREE_COPYRIGHT@
- */
-/* 
- * Mach Operating System
- * Copyright (c) 1991,1990,1989 Carnegie Mellon University
- * All Rights Reserved.
- * 
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- * 
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- * 
- * Carnegie Mellon requests users of this software to return to
- * 
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- * 
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- */
-/*
- */
-/*
- *	File:	mach/mach_port.defs
- *	Author:	Rich Draves
- *
- *	Exported kernel calls.
- */
-
-subsystem
-#if	KERNEL_SERVER
-	  KernelServer
-#endif	/* KERNEL_SERVER */
-	  processor 3000;
-
-#include <mach/std_types.defs>
-#include <mach/mach_types.defs>
-
-/*
- * References to processor objects are returned by:
- *	host_processors(host_priv_t,...);
- */
-/*
- *	Start processor.
- */
-
-#ifdef KERNEL_SERVER
-routine	processor_start_from_user(
-		processor	: processor_t);
-#else
-routine	processor_start(
-		processor	: processor_t);
-#endif
-
-/*
- *	Exit processor -- may not be restartable.
- */
-
-#ifdef KERNEL_SERVER
-routine	processor_exit_from_user(
-		processor	: processor_t);
-#else
-routine	processor_exit(
-		processor	: processor_t);
-#endif
-
-/*
- *	Return information about this processor.
- */
-routine processor_info(
-		processor	: processor_t;
-		flavor		: processor_flavor_t;
-	out	host		: host_t;
-	out	processor_info_out: processor_info_t, CountInOut);
-
-
-/*
- *	Do something machine-dependent to processor.
- */
-routine processor_control(
-		processor	: processor_t;
-		processor_cmd	: processor_info_t);
-
-/*
- * JMM - Keep processor_set related stuff at the end because
- * they likely will be removed.
- */
-
-/*
- *	Assign processor to processor set.
- */
-routine processor_assign(
-		processor	: processor_t;
-		new_set		: processor_set_t;
-		wait		: boolean_t);
-
-/*
- *	Get current assignment for processor.
- */
-routine processor_get_assignment(
-		processor	: processor_t;
-	out	assigned_set	: processor_set_name_t);
-
-/* vim: set ft=c : */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/processor.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/processor.h
deleted file mode 100644
index a1b9c3ba..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/processor.h
+++ /dev/null
@@ -1,360 +0,0 @@
-#ifndef	_processor_user_
-#define	_processor_user_
-
-/* Module processor */
-
-#include <string.h>
-#include <mach/ndr.h>
-#include <mach/boolean.h>
-#include <mach/kern_return.h>
-#include <mach/notify.h>
-#include <mach/mach_types.h>
-#include <mach/message.h>
-#include <mach/mig_errors.h>
-#include <mach/port.h>
-	
-/* BEGIN MIG_STRNCPY_ZEROFILL CODE */
-
-#if defined(__has_include)
-#if __has_include(<mach/mig_strncpy_zerofill_support.h>)
-#ifndef USING_MIG_STRNCPY_ZEROFILL
-#define USING_MIG_STRNCPY_ZEROFILL
-#endif
-#ifndef __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
-#define __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
-#ifdef __cplusplus
-extern "C" {
-#endif
-	extern int mig_strncpy_zerofill(char *dest, const char *src, int len) __attribute__((weak_import));
-#ifdef __cplusplus
-}
-#endif
-#endif /* __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__ */
-#endif /* __has_include(<mach/mig_strncpy_zerofill_support.h>) */
-#endif /* __has_include */
-	
-/* END MIG_STRNCPY_ZEROFILL CODE */
-
-
-#ifdef AUTOTEST
-#ifndef FUNCTION_PTR_T
-#define FUNCTION_PTR_T
-typedef void (*function_ptr_t)(mach_port_t, char *, mach_msg_type_number_t);
-typedef struct {
-        char            *name;
-        function_ptr_t  function;
-} function_table_entry;
-typedef function_table_entry   *function_table_t;
-#endif /* FUNCTION_PTR_T */
-#endif /* AUTOTEST */
-
-#ifndef	processor_MSG_COUNT
-#define	processor_MSG_COUNT	6
-#endif	/* processor_MSG_COUNT */
-
-#include <mach/std_types.h>
-#include <mach/mig.h>
-#include <mach/mig.h>
-#include <mach/mach_types.h>
-
-#ifdef __BeforeMigUserHeader
-__BeforeMigUserHeader
-#endif /* __BeforeMigUserHeader */
-
-#include <sys/cdefs.h>
-__BEGIN_DECLS
-
-
-/* Routine processor_start */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t processor_start
-(
-	processor_t processor
-);
-
-/* Routine processor_exit */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t processor_exit
-(
-	processor_t processor
-);
-
-/* Routine processor_info */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t processor_info
-(
-	processor_t processor,
-	processor_flavor_t flavor,
-	host_t *host,
-	processor_info_t processor_info_out,
-	mach_msg_type_number_t *processor_info_outCnt
-);
-
-/* Routine processor_control */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t processor_control
-(
-	processor_t processor,
-	processor_info_t processor_cmd,
-	mach_msg_type_number_t processor_cmdCnt
-);
-
-/* Routine processor_assign */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t processor_assign
-(
-	processor_t processor,
-	processor_set_t new_set,
-	boolean_t wait
-);
-
-/* Routine processor_get_assignment */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t processor_get_assignment
-(
-	processor_t processor,
-	processor_set_name_t *assigned_set
-);
-
-__END_DECLS
-
-/********************** Caution **************************/
-/* The following data types should be used to calculate  */
-/* maximum message sizes only. The actual message may be */
-/* smaller, and the position of the arguments within the */
-/* message layout may vary from what is presented here.  */
-/* For example, if any of the arguments are variable-    */
-/* sized, and less than the maximum is sent, the data    */
-/* will be packed tight in the actual message to reduce  */
-/* the presence of holes.                                */
-/********************** Caution **************************/
-
-/* typedefs for all requests */
-
-#ifndef __Request__processor_subsystem__defined
-#define __Request__processor_subsystem__defined
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__processor_start_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__processor_exit_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		processor_flavor_t flavor;
-		mach_msg_type_number_t processor_info_outCnt;
-	} __Request__processor_info_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		mach_msg_type_number_t processor_cmdCnt;
-		integer_t processor_cmd[20];
-	} __Request__processor_control_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t new_set;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		boolean_t wait;
-	} __Request__processor_assign_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__processor_get_assignment_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-#endif /* !__Request__processor_subsystem__defined */
-
-/* union of all requests */
-
-#ifndef __RequestUnion__processor_subsystem__defined
-#define __RequestUnion__processor_subsystem__defined
-union __RequestUnion__processor_subsystem {
-	__Request__processor_start_t Request_processor_start;
-	__Request__processor_exit_t Request_processor_exit;
-	__Request__processor_info_t Request_processor_info;
-	__Request__processor_control_t Request_processor_control;
-	__Request__processor_assign_t Request_processor_assign;
-	__Request__processor_get_assignment_t Request_processor_get_assignment;
-};
-#endif /* !__RequestUnion__processor_subsystem__defined */
-/* typedefs for all replies */
-
-#ifndef __Reply__processor_subsystem__defined
-#define __Reply__processor_subsystem__defined
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__processor_start_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__processor_exit_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t host;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		mach_msg_type_number_t processor_info_outCnt;
-		integer_t processor_info_out[20];
-	} __Reply__processor_info_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__processor_control_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__processor_assign_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t assigned_set;
-		/* end of the kernel processed data */
-	} __Reply__processor_get_assignment_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-#endif /* !__Reply__processor_subsystem__defined */
-
-/* union of all replies */
-
-#ifndef __ReplyUnion__processor_subsystem__defined
-#define __ReplyUnion__processor_subsystem__defined
-union __ReplyUnion__processor_subsystem {
-	__Reply__processor_start_t Reply_processor_start;
-	__Reply__processor_exit_t Reply_processor_exit;
-	__Reply__processor_info_t Reply_processor_info;
-	__Reply__processor_control_t Reply_processor_control;
-	__Reply__processor_assign_t Reply_processor_assign;
-	__Reply__processor_get_assignment_t Reply_processor_get_assignment;
-};
-#endif /* !__RequestUnion__processor_subsystem__defined */
-
-#ifndef subsystem_to_name_map_processor
-#define subsystem_to_name_map_processor \
-    { "processor_start", 3000 },\
-    { "processor_exit", 3001 },\
-    { "processor_info", 3002 },\
-    { "processor_control", 3003 },\
-    { "processor_assign", 3004 },\
-    { "processor_get_assignment", 3005 }
-#endif
-
-#ifdef __AfterMigUserHeader
-__AfterMigUserHeader
-#endif /* __AfterMigUserHeader */
-
-#endif	 /* _processor_user_ */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/processor_info.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/processor_info.h
deleted file mode 100644
index 85537607..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/processor_info.h
+++ /dev/null
@@ -1,153 +0,0 @@
-/*
- * Copyright (c) 2000-2005 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-/*
- * Mach Operating System
- * Copyright (c) 1991,1990,1989 Carnegie Mellon University
- * All Rights Reserved.
- *
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- */
-/*
- */
-
-/*
- *	File:	mach/processor_info.h
- *	Author:	David L. Black
- *	Date:	1988
- *
- *	Data structure definitions for processor_info, processor_set_info
- */
-
-#ifndef _MACH_PROCESSOR_INFO_H_
-#define _MACH_PROCESSOR_INFO_H_
-
-#include <mach/message.h>
-#include <mach/machine.h>
-#include <mach/machine/processor_info.h>
-
-/*
- *	Generic information structure to allow for expansion.
- */
-typedef integer_t       *processor_info_t;      /* varying array of int. */
-typedef integer_t       *processor_info_array_t;  /* varying array of int */
-
-#define PROCESSOR_INFO_MAX      (1024)  /* max array size */
-typedef integer_t       processor_info_data_t[PROCESSOR_INFO_MAX];
-
-
-typedef integer_t       *processor_set_info_t;  /* varying array of int. */
-
-#define PROCESSOR_SET_INFO_MAX  (1024)  /* max array size */
-typedef integer_t       processor_set_info_data_t[PROCESSOR_SET_INFO_MAX];
-
-/*
- *	Currently defined information.
- */
-typedef int     processor_flavor_t;
-#define PROCESSOR_BASIC_INFO    1               /* basic information */
-#define PROCESSOR_CPU_LOAD_INFO 2       /* cpu load information */
-#define PROCESSOR_PM_REGS_INFO  0x10000001      /* performance monitor register info */
-#define PROCESSOR_TEMPERATURE   0x10000002      /* Processor core temperature */
-
-struct processor_basic_info {
-	cpu_type_t      cpu_type;       /* type of cpu */
-	cpu_subtype_t   cpu_subtype;    /* subtype of cpu */
-	boolean_t       running;        /* is processor running */
-	int             slot_num;       /* slot number */
-	boolean_t       is_master;      /* is this the master processor */
-};
-
-typedef struct processor_basic_info     processor_basic_info_data_t;
-typedef struct processor_basic_info     *processor_basic_info_t;
-#define PROCESSOR_BASIC_INFO_COUNT      ((mach_msg_type_number_t) \
-	        (sizeof(processor_basic_info_data_t)/sizeof(natural_t)))
-
-struct processor_cpu_load_info {             /* number of ticks while running... */
-	unsigned int    cpu_ticks[CPU_STATE_MAX]; /* ... in the given mode */
-};
-
-typedef struct processor_cpu_load_info  processor_cpu_load_info_data_t;
-typedef struct processor_cpu_load_info  *processor_cpu_load_info_t;
-#define PROCESSOR_CPU_LOAD_INFO_COUNT   ((mach_msg_type_number_t) \
-	        (sizeof(processor_cpu_load_info_data_t)/sizeof(natural_t)))
-
-/*
- *	Scaling factor for load_average, mach_factor.
- */
-#define LOAD_SCALE      1000
-
-typedef int     processor_set_flavor_t;
-#define PROCESSOR_SET_BASIC_INFO        5       /* basic information */
-
-struct processor_set_basic_info {
-	int             processor_count;        /* How many processors */
-	int             default_policy;         /* When others not enabled */
-};
-
-typedef struct processor_set_basic_info processor_set_basic_info_data_t;
-typedef struct processor_set_basic_info *processor_set_basic_info_t;
-#define PROCESSOR_SET_BASIC_INFO_COUNT  ((mach_msg_type_number_t) \
-	        (sizeof(processor_set_basic_info_data_t)/sizeof(natural_t)))
-
-#define PROCESSOR_SET_LOAD_INFO         4       /* scheduling statistics */
-
-struct processor_set_load_info {
-	int             task_count;             /* How many tasks */
-	int             thread_count;           /* How many threads */
-	integer_t       load_average;           /* Scaled */
-	integer_t       mach_factor;            /* Scaled */
-};
-
-typedef struct processor_set_load_info processor_set_load_info_data_t;
-typedef struct processor_set_load_info *processor_set_load_info_t;
-#define PROCESSOR_SET_LOAD_INFO_COUNT   ((mach_msg_type_number_t) \
-	        (sizeof(processor_set_load_info_data_t)/sizeof(natural_t)))
-
-
-#endif  /* _MACH_PROCESSOR_INFO_H_ */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/processor_set.defs b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/processor_set.defs
deleted file mode 100644
index dc0f4077..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/processor_set.defs
+++ /dev/null
@@ -1,161 +0,0 @@
-/*
- * Copyright (c) 2000-2006 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- * 
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- * 
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- * 
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- * 
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_FREE_COPYRIGHT@
- */
-/* 
- * Mach Operating System
- * Copyright (c) 1991,1990,1989 Carnegie Mellon University
- * All Rights Reserved.
- * 
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- * 
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- * 
- * Carnegie Mellon requests users of this software to return to
- * 
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- * 
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- */
-/*
- */
-/*
- *	File:	mach/mach_port.defs
- *	Author:	Rich Draves
- *
- *	Exported kernel calls.
- */
-
-subsystem
-#if	KERNEL_SERVER
-	  KernelServer
-#endif	/* KERNEL_SERVER */
-	  processor_set 4000;
-
-#include <mach/std_types.defs>
-#include <mach/mach_types.defs>
-
-/*
- *      Return scheduling statistics for a processor set.
- */
-routine processor_set_statistics(
-        	pset                    : processor_set_name_t;
-        	flavor                  : processor_set_flavor_t;
-	out     info_out        	: processor_set_info_t, CountInOut);
-
-
-/*
- *	Destroy processor set.
- */
-routine processor_set_destroy(
-		set		: processor_set_t);
-
-
-/*
- *	Set max priority for processor_set.
- */
-routine processor_set_max_priority(
-		processor_set	: processor_set_t;
-		max_priority	: int;
-		change_threads	: boolean_t);
-
-/*
- *	Enable policy for processor set
- */
-routine processor_set_policy_enable(
-		processor_set	: processor_set_t;
-		policy		: int);
-
-/*
- *	Disable policy for processor set
- */
-routine processor_set_policy_disable(
-		processor_set	: processor_set_t;
-		policy		: int;
-		change_threads	: boolean_t);
-
-/*
- *	List all tasks in processor set.
- */
-routine processor_set_tasks(
-		processor_set	: processor_set_t;
-	out	task_list	: task_array_t);
-
-/*
- *	List all threads in processor set.
- */
-routine processor_set_threads(
-		processor_set	: processor_set_t;
-	out	thread_list	: thread_act_array_t);
-
-/*
- *      Controls the scheduling attributes governing the processor set.
- *      Allows control of enabled policies, and per-policy base and limit
- *      priorities.
- */
-routine processor_set_policy_control(
-	pset			: processor_set_t;
-	flavor			: processor_set_flavor_t;
-	policy_info		: processor_set_info_t;
-	change			: boolean_t);
-
-
-/*
- *	Debug Info
- *      This call is only valid on MACH_DEBUG kernels.
- *      Otherwise, KERN_FAILURE is returned.
- */
-routine processor_set_stack_usage(
-		pset		: processor_set_t;
-	out	ltotal		: unsigned;
-	out	space		: vm_size_t;
-	out	resident	: vm_size_t;
-	out	maxusage	: vm_size_t;
-	out	maxstack	: vm_offset_t);
-
-/*
- *      Get information about processor set.
- */
-routine processor_set_info(
-                set_name        : processor_set_name_t;
-                flavor          : int;
-        out     host            : host_t;
-        out     info_out        : processor_set_info_t, CountInOut);
-
-/* vim: set ft=c : */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/processor_set.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/processor_set.h
deleted file mode 100644
index c306155f..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/processor_set.h
+++ /dev/null
@@ -1,540 +0,0 @@
-#ifndef	_processor_set_user_
-#define	_processor_set_user_
-
-/* Module processor_set */
-
-#include <string.h>
-#include <mach/ndr.h>
-#include <mach/boolean.h>
-#include <mach/kern_return.h>
-#include <mach/notify.h>
-#include <mach/mach_types.h>
-#include <mach/message.h>
-#include <mach/mig_errors.h>
-#include <mach/port.h>
-	
-/* BEGIN MIG_STRNCPY_ZEROFILL CODE */
-
-#if defined(__has_include)
-#if __has_include(<mach/mig_strncpy_zerofill_support.h>)
-#ifndef USING_MIG_STRNCPY_ZEROFILL
-#define USING_MIG_STRNCPY_ZEROFILL
-#endif
-#ifndef __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
-#define __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
-#ifdef __cplusplus
-extern "C" {
-#endif
-	extern int mig_strncpy_zerofill(char *dest, const char *src, int len) __attribute__((weak_import));
-#ifdef __cplusplus
-}
-#endif
-#endif /* __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__ */
-#endif /* __has_include(<mach/mig_strncpy_zerofill_support.h>) */
-#endif /* __has_include */
-	
-/* END MIG_STRNCPY_ZEROFILL CODE */
-
-
-#ifdef AUTOTEST
-#ifndef FUNCTION_PTR_T
-#define FUNCTION_PTR_T
-typedef void (*function_ptr_t)(mach_port_t, char *, mach_msg_type_number_t);
-typedef struct {
-        char            *name;
-        function_ptr_t  function;
-} function_table_entry;
-typedef function_table_entry   *function_table_t;
-#endif /* FUNCTION_PTR_T */
-#endif /* AUTOTEST */
-
-#ifndef	processor_set_MSG_COUNT
-#define	processor_set_MSG_COUNT	10
-#endif	/* processor_set_MSG_COUNT */
-
-#include <mach/std_types.h>
-#include <mach/mig.h>
-#include <mach/mig.h>
-#include <mach/mach_types.h>
-
-#ifdef __BeforeMigUserHeader
-__BeforeMigUserHeader
-#endif /* __BeforeMigUserHeader */
-
-#include <sys/cdefs.h>
-__BEGIN_DECLS
-
-
-/* Routine processor_set_statistics */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t processor_set_statistics
-(
-	processor_set_name_t pset,
-	processor_set_flavor_t flavor,
-	processor_set_info_t info_out,
-	mach_msg_type_number_t *info_outCnt
-);
-
-/* Routine processor_set_destroy */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t processor_set_destroy
-(
-	processor_set_t set
-);
-
-/* Routine processor_set_max_priority */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t processor_set_max_priority
-(
-	processor_set_t processor_set,
-	int max_priority,
-	boolean_t change_threads
-);
-
-/* Routine processor_set_policy_enable */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t processor_set_policy_enable
-(
-	processor_set_t processor_set,
-	int policy
-);
-
-/* Routine processor_set_policy_disable */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t processor_set_policy_disable
-(
-	processor_set_t processor_set,
-	int policy,
-	boolean_t change_threads
-);
-
-/* Routine processor_set_tasks */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t processor_set_tasks
-(
-	processor_set_t processor_set,
-	task_array_t *task_list,
-	mach_msg_type_number_t *task_listCnt
-);
-
-/* Routine processor_set_threads */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t processor_set_threads
-(
-	processor_set_t processor_set,
-	thread_act_array_t *thread_list,
-	mach_msg_type_number_t *thread_listCnt
-);
-
-/* Routine processor_set_policy_control */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t processor_set_policy_control
-(
-	processor_set_t pset,
-	processor_set_flavor_t flavor,
-	processor_set_info_t policy_info,
-	mach_msg_type_number_t policy_infoCnt,
-	boolean_t change
-);
-
-/* Routine processor_set_stack_usage */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t processor_set_stack_usage
-(
-	processor_set_t pset,
-	unsigned *ltotal,
-	vm_size_t *space,
-	vm_size_t *resident,
-	vm_size_t *maxusage,
-	vm_offset_t *maxstack
-);
-
-/* Routine processor_set_info */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t processor_set_info
-(
-	processor_set_name_t set_name,
-	int flavor,
-	host_t *host,
-	processor_set_info_t info_out,
-	mach_msg_type_number_t *info_outCnt
-);
-
-__END_DECLS
-
-/********************** Caution **************************/
-/* The following data types should be used to calculate  */
-/* maximum message sizes only. The actual message may be */
-/* smaller, and the position of the arguments within the */
-/* message layout may vary from what is presented here.  */
-/* For example, if any of the arguments are variable-    */
-/* sized, and less than the maximum is sent, the data    */
-/* will be packed tight in the actual message to reduce  */
-/* the presence of holes.                                */
-/********************** Caution **************************/
-
-/* typedefs for all requests */
-
-#ifndef __Request__processor_set_subsystem__defined
-#define __Request__processor_set_subsystem__defined
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		processor_set_flavor_t flavor;
-		mach_msg_type_number_t info_outCnt;
-	} __Request__processor_set_statistics_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__processor_set_destroy_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		int max_priority;
-		boolean_t change_threads;
-	} __Request__processor_set_max_priority_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		int policy;
-	} __Request__processor_set_policy_enable_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		int policy;
-		boolean_t change_threads;
-	} __Request__processor_set_policy_disable_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__processor_set_tasks_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__processor_set_threads_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		processor_set_flavor_t flavor;
-		mach_msg_type_number_t policy_infoCnt;
-		integer_t policy_info[5];
-		boolean_t change;
-	} __Request__processor_set_policy_control_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__processor_set_stack_usage_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		int flavor;
-		mach_msg_type_number_t info_outCnt;
-	} __Request__processor_set_info_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-#endif /* !__Request__processor_set_subsystem__defined */
-
-/* union of all requests */
-
-#ifndef __RequestUnion__processor_set_subsystem__defined
-#define __RequestUnion__processor_set_subsystem__defined
-union __RequestUnion__processor_set_subsystem {
-	__Request__processor_set_statistics_t Request_processor_set_statistics;
-	__Request__processor_set_destroy_t Request_processor_set_destroy;
-	__Request__processor_set_max_priority_t Request_processor_set_max_priority;
-	__Request__processor_set_policy_enable_t Request_processor_set_policy_enable;
-	__Request__processor_set_policy_disable_t Request_processor_set_policy_disable;
-	__Request__processor_set_tasks_t Request_processor_set_tasks;
-	__Request__processor_set_threads_t Request_processor_set_threads;
-	__Request__processor_set_policy_control_t Request_processor_set_policy_control;
-	__Request__processor_set_stack_usage_t Request_processor_set_stack_usage;
-	__Request__processor_set_info_t Request_processor_set_info;
-};
-#endif /* !__RequestUnion__processor_set_subsystem__defined */
-/* typedefs for all replies */
-
-#ifndef __Reply__processor_set_subsystem__defined
-#define __Reply__processor_set_subsystem__defined
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		mach_msg_type_number_t info_outCnt;
-		integer_t info_out[5];
-	} __Reply__processor_set_statistics_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__processor_set_destroy_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__processor_set_max_priority_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__processor_set_policy_enable_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__processor_set_policy_disable_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_ool_ports_descriptor_t task_list;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		mach_msg_type_number_t task_listCnt;
-	} __Reply__processor_set_tasks_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_ool_ports_descriptor_t thread_list;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		mach_msg_type_number_t thread_listCnt;
-	} __Reply__processor_set_threads_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__processor_set_policy_control_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		unsigned ltotal;
-		vm_size_t space;
-		vm_size_t resident;
-		vm_size_t maxusage;
-		vm_offset_t maxstack;
-	} __Reply__processor_set_stack_usage_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t host;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		mach_msg_type_number_t info_outCnt;
-		integer_t info_out[5];
-	} __Reply__processor_set_info_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-#endif /* !__Reply__processor_set_subsystem__defined */
-
-/* union of all replies */
-
-#ifndef __ReplyUnion__processor_set_subsystem__defined
-#define __ReplyUnion__processor_set_subsystem__defined
-union __ReplyUnion__processor_set_subsystem {
-	__Reply__processor_set_statistics_t Reply_processor_set_statistics;
-	__Reply__processor_set_destroy_t Reply_processor_set_destroy;
-	__Reply__processor_set_max_priority_t Reply_processor_set_max_priority;
-	__Reply__processor_set_policy_enable_t Reply_processor_set_policy_enable;
-	__Reply__processor_set_policy_disable_t Reply_processor_set_policy_disable;
-	__Reply__processor_set_tasks_t Reply_processor_set_tasks;
-	__Reply__processor_set_threads_t Reply_processor_set_threads;
-	__Reply__processor_set_policy_control_t Reply_processor_set_policy_control;
-	__Reply__processor_set_stack_usage_t Reply_processor_set_stack_usage;
-	__Reply__processor_set_info_t Reply_processor_set_info;
-};
-#endif /* !__RequestUnion__processor_set_subsystem__defined */
-
-#ifndef subsystem_to_name_map_processor_set
-#define subsystem_to_name_map_processor_set \
-    { "processor_set_statistics", 4000 },\
-    { "processor_set_destroy", 4001 },\
-    { "processor_set_max_priority", 4002 },\
-    { "processor_set_policy_enable", 4003 },\
-    { "processor_set_policy_disable", 4004 },\
-    { "processor_set_tasks", 4005 },\
-    { "processor_set_threads", 4006 },\
-    { "processor_set_policy_control", 4007 },\
-    { "processor_set_stack_usage", 4008 },\
-    { "processor_set_info", 4009 }
-#endif
-
-#ifdef __AfterMigUserHeader
-__AfterMigUserHeader
-#endif /* __AfterMigUserHeader */
-
-#endif	 /* _processor_set_user_ */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/rpc.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/rpc.h
deleted file mode 100644
index f3361d76..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/rpc.h
+++ /dev/null
@@ -1,135 +0,0 @@
-/*
- * Copyright (c) 2002,2000 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-
-/*
- * Mach RPC Subsystem Interfaces
- */
-
-#ifndef _MACH_RPC_H_
-#define _MACH_RPC_H_
-
-#include <mach/boolean.h>
-#include <mach/kern_return.h>
-#include <mach/port.h>
-#include <mach/vm_types.h>
-
-#include <mach/mig.h>
-#include <mach/mig_errors.h>
-#include <mach/machine/rpc.h>
-#include <mach/thread_status.h>
-
-/*
- * These are the types for RPC-specific variants of the MIG routine
- * descriptor and subsystem data types.
- *
- * THIS IS ONLY FOR COMPATIBILITY.  WE WILL NOT BE IMPLEMENTING THIS.
- */
-
-/*
- * Basic mach rpc types.
- */
-typedef unsigned int    routine_arg_type;
-typedef unsigned int    routine_arg_offset;
-typedef unsigned int    routine_arg_size;
-
-/*
- * Definitions for a signature's argument and routine descriptor's.
- */
-struct rpc_routine_arg_descriptor {
-	routine_arg_type        type;      /* Port, Array, etc. */
-	routine_arg_size        size;      /* element size in bytes */
-	routine_arg_size        count;     /* number of elements */
-	routine_arg_offset      offset;    /* Offset in list of routine args */
-};
-typedef struct rpc_routine_arg_descriptor *rpc_routine_arg_descriptor_t;
-
-struct rpc_routine_descriptor {
-	mig_impl_routine_t      impl_routine;   /* Server work func pointer   */
-	mig_stub_routine_t      stub_routine;   /* Unmarshalling func pointer */
-	unsigned int            argc;           /* Number of argument words   */
-	unsigned int            descr_count;    /* Number of complex argument */
-	                                        /* descriptors                */
-	rpc_routine_arg_descriptor_t
-	    arg_descr;                          /* Pointer to beginning of    */
-	                                        /* the arg_descr array        */
-	unsigned int            max_reply_msg;  /* Max size for reply msg     */
-};
-typedef struct rpc_routine_descriptor *rpc_routine_descriptor_t;
-
-#define RPC_DESCR_SIZE(x) ((x)->descr_count * \
-	                        sizeof(struct rpc_routine_arg_descriptor))
-
-struct rpc_signature {
-	struct rpc_routine_descriptor rd;
-	struct rpc_routine_arg_descriptor rad[1];
-};
-
-#define RPC_SIGBUF_SIZE 8
-
-/*
- *	A subsystem describes a set of server routines that can be invoked by
- *	mach_rpc() on the ports that are registered with the subsystem.  For
- *	each routine, the routine number is given, along with the
- *	address of the implementation function in the server and a
- *	description of the arguments of the routine (it's "signature").
- *
- *	This structure definition is only a template for what is really a
- *	variable-length structure (generated by MIG for each subsystem).
- *	The actual structures do not always have one entry in the routine
- *	array, and also have a varying number of entries in the arg_descr
- *	array.  Each routine has an array of zero or more arg descriptors
- *	one for each complex arg.  These arrays are all catenated together
- *	to form the arg_descr field of the subsystem struct.  The
- *	arg_descr field of each routine entry points to a unique sub-sequence
- *	within this catenated array.  The goal is to keep everything
- *	contiguous.
- */
-struct rpc_subsystem {
-	void            *reserved;      /* Reserved for system use */
-
-	mach_msg_id_t   start;          /* Min routine number */
-	mach_msg_id_t   end;            /* Max routine number + 1 */
-	unsigned int    maxsize;        /* Max mach_msg size */
-	vm_address_t    base_addr;      /* Address of this struct in user */
-
-	struct rpc_routine_descriptor   /* Array of routine descriptors */
-	    routine[1                   /* Actually, (start-end+1) */
-	];
-
-	struct rpc_routine_arg_descriptor
-	    arg_descriptor[1               /* Actually, the sum of the descr_ */
-	];                                 /* count fields for all routines   */
-};
-typedef struct rpc_subsystem  *rpc_subsystem_t;
-
-#define RPC_SUBSYSTEM_NULL      ((rpc_subsystem_t) 0)
-
-#endif  /* _MACH_RPC_H_ */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/sdt.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/sdt.h
deleted file mode 100644
index dd604aea..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/sdt.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License, Version 1.0 only
- * (the "License").  You may not use this file except in compliance
- * with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
- */
-
-#ifndef _MACH_SDT_H
-#define _MACH_SDT_H
-
-#include <mach/machine/sdt.h>
-
-#endif  /* _MACH_SDT_H */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/semaphore.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/semaphore.h
deleted file mode 100644
index 1ff46e41..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/semaphore.h
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * Copyright (c) 2000-2008 Apple Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-
-#ifndef _MACH_SEMAPHORE_H_
-#define _MACH_SEMAPHORE_H_
-
-#include <mach/port.h>
-#include <mach/mach_types.h>
-#include <mach/kern_return.h>
-#include <mach/sync_policy.h>
-
-/*
- *	Forward Declarations
- *
- *	The semaphore creation and deallocation routines are
- *	defined with the Mach task APIs in <mach/task.h>.
- *
- *      kern_return_t	semaphore_create(task_t task,
- *                                       semaphore_t *new_semaphore,
- *					 sync_policy_t policy,
- *					 int value);
- *
- *	kern_return_t	semaphore_destroy(task_t task,
- *					  semaphore_t semaphore);
- */
-
-#include <sys/cdefs.h>
-__BEGIN_DECLS
-
-extern  kern_return_t   semaphore_signal(semaphore_t semaphore);
-extern  kern_return_t   semaphore_signal_all(semaphore_t semaphore);
-
-extern  kern_return_t   semaphore_wait(semaphore_t semaphore);
-
-
-extern  kern_return_t   semaphore_timedwait(semaphore_t semaphore,
-    mach_timespec_t wait_time);
-
-extern  kern_return_t   semaphore_timedwait_signal(semaphore_t wait_semaphore,
-    semaphore_t signal_semaphore,
-    mach_timespec_t wait_time);
-
-extern  kern_return_t   semaphore_wait_signal(semaphore_t wait_semaphore,
-    semaphore_t signal_semaphore);
-
-extern  kern_return_t   semaphore_signal_thread(semaphore_t semaphore,
-    thread_t thread);
-
-
-__END_DECLS
-
-
-#endif  /* _MACH_SEMAPHORE_H_ */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/shared_memory_server.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/shared_memory_server.h
deleted file mode 100644
index e0622c52..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/shared_memory_server.h
+++ /dev/null
@@ -1,133 +0,0 @@
-/*
- * Copyright (c) 2000-2005 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- *
- *	File: mach/shared_memory_server.h
- *
- *      protos and struct definitions for shared library
- *	server and interface
- */
-
-/*
- * XXX
- *
- * NOTE: this file is deprecated and will be removed in the near future.
- * Any project that includes this file should be changed to:
- * 1. use <mach/shared_region.h> instead of this file,
- * 2. handle the new shared regions, now available on more platforms
- */
-
-#ifndef _MACH_SHARED_MEMORY_SERVER_H_
-#define _MACH_SHARED_MEMORY_SERVER_H_
-
-#warning "<mach/shared_memory_server.h> is deprecated.  Please use <mach/shared_region.h> instead."
-
-#include <sys/cdefs.h>
-#include <mach/vm_prot.h>
-#include <mach/vm_types.h>
-#include <mach/mach_types.h>
-
-#define VM_PROT_COW  0x8  /* must not interfere with normal prot assignments */
-#define VM_PROT_ZF  0x10  /* must not interfere with normal prot assignments */
-
-#define GLOBAL_SHARED_TEXT_SEGMENT      0x90000000U
-#define GLOBAL_SHARED_DATA_SEGMENT      0xA0000000U
-#define GLOBAL_SHARED_SEGMENT_MASK      0xF0000000U
-
-#define SHARED_TEXT_REGION_SIZE         0x10000000
-#define SHARED_DATA_REGION_SIZE         0x10000000
-
-#if !defined(__LP64__)
-
-#define SHARED_LIBRARY_SERVER_SUPPORTED
-
-#define SHARED_ALTERNATE_LOAD_BASE      0x09000000
-
-/*
- *  Note: the two masks below are useful because the assumption is
- *  made that these shared regions will always be mapped on natural boundaries
- *  i.e. if the size is 0x10000000 the object can be mapped at
- *  0x20000000, or 0x30000000, but not 0x1000000
- */
-#define SHARED_TEXT_REGION_MASK         0x0FFFFFFF
-#define SHARED_DATA_REGION_MASK         0x0FFFFFFF
-
-
-/* flags field aliases for copyin_shared_file and load_shared_file */
-
-/* IN */
-#define ALTERNATE_LOAD_SITE 0x1
-#define NEW_LOCAL_SHARED_REGIONS 0x2
-#define QUERY_IS_SYSTEM_REGION 0x4
-
-/* OUT */
-#define SF_PREV_LOADED    0x1
-#define SYSTEM_REGION_BACKED 0x2
-
-
-struct sf_mapping {
-	vm_offset_t     mapping_offset;
-	vm_size_t       size;
-	vm_offset_t     file_offset;
-	vm_prot_t       protection;  /* read/write/execute/COW/ZF */
-	vm_offset_t     cksum;
-};
-typedef struct sf_mapping sf_mapping_t;
-
-#endif  /* !defined(__LP64__) */
-
-/*
- * All shared_region_* declarations are a private interface
- * between dyld and the kernel.
- *
- */
-struct shared_file_mapping_np {
-	mach_vm_address_t       sfm_address;
-	mach_vm_size_t          sfm_size;
-	mach_vm_offset_t        sfm_file_offset;
-	vm_prot_t               sfm_max_prot;
-	vm_prot_t               sfm_init_prot;
-};
-
-struct shared_region_range_np {
-	mach_vm_address_t       srr_address;
-	mach_vm_size_t          srr_size;
-};
-
-
-__BEGIN_DECLS
-int     shared_region_map_file_np(int fd,
-    uint32_t mappingCount,
-    const struct shared_file_mapping_np *mappings,
-    int64_t *slide_p);
-int     shared_region_make_private_np(uint32_t rangeCount,
-    const struct shared_region_range_np *ranges);
-__END_DECLS
-
-
-#endif /* _MACH_SHARED_MEMORY_SERVER_H_ */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/shared_region.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/shared_region.h
deleted file mode 100644
index 0e8f2820..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/shared_region.h
+++ /dev/null
@@ -1,129 +0,0 @@
-/*
- * Copyright (c) 2007 Apple Inc. All rights reserved.
- *
- * @APPLE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this
- * file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_LICENSE_HEADER_END@
- */
-/*
- *
- *	File: mach/shared_region.h
- *
- *      protos and struct definitions for shared region
- */
-
-#ifndef _MACH_SHARED_REGION_H_
-#define _MACH_SHARED_REGION_H_
-
-#include <sys/cdefs.h>
-#include <mach/vm_prot.h>
-#include <mach/vm_types.h>
-#include <mach/mach_types.h>
-
-#define SHARED_REGION_BASE_I386                 0x90000000ULL
-#define SHARED_REGION_SIZE_I386                 0x20000000ULL
-#define SHARED_REGION_NESTING_BASE_I386         0x90000000ULL
-#define SHARED_REGION_NESTING_SIZE_I386         0x20000000ULL
-#define SHARED_REGION_NESTING_MIN_I386          0x00200000ULL
-#define SHARED_REGION_NESTING_MAX_I386          0xFFE00000ULL
-
-#define SHARED_REGION_BASE_X86_64               0x00007FFF00000000ULL
-#define SHARED_REGION_SIZE_X86_64               0x00000000FFE00000ULL
-#define SHARED_REGION_NESTING_BASE_X86_64       0x00007FFF00000000ULL
-#define SHARED_REGION_NESTING_SIZE_X86_64       0x00000000FFE00000ULL
-#define SHARED_REGION_NESTING_MIN_X86_64        0x0000000000200000ULL
-#define SHARED_REGION_NESTING_MAX_X86_64        0xFFFFFFFFFFE00000ULL
-
-#define SHARED_REGION_BASE_PPC                  0x90000000ULL
-#define SHARED_REGION_SIZE_PPC                  0x20000000ULL
-#define SHARED_REGION_NESTING_BASE_PPC          0x90000000ULL
-#define SHARED_REGION_NESTING_SIZE_PPC          0x10000000ULL
-#define SHARED_REGION_NESTING_MIN_PPC           0x10000000ULL
-#define SHARED_REGION_NESTING_MAX_PPC           0x10000000ULL
-
-#define SHARED_REGION_BASE_PPC64                0x00007FFF60000000ULL
-#define SHARED_REGION_SIZE_PPC64                0x00000000A0000000ULL
-#define SHARED_REGION_NESTING_BASE_PPC64        0x00007FFF60000000ULL
-#define SHARED_REGION_NESTING_SIZE_PPC64        0x00000000A0000000ULL
-#define SHARED_REGION_NESTING_MIN_PPC64         0x0000000010000000ULL
-#define SHARED_REGION_NESTING_MAX_PPC64         0x0000000010000000ULL
-
-#define SHARED_REGION_BASE_ARM                  0x40000000ULL
-#define SHARED_REGION_SIZE_ARM                  0x40000000ULL
-#define SHARED_REGION_NESTING_BASE_ARM          0x40000000ULL
-#define SHARED_REGION_NESTING_SIZE_ARM          0x40000000ULL
-#define SHARED_REGION_NESTING_MIN_ARM           ?
-#define SHARED_REGION_NESTING_MAX_ARM           ?
-
-#define SHARED_REGION_BASE_ARM64_32             0x1A000000ULL
-#define SHARED_REGION_SIZE_ARM64_32             0x40000000ULL
-#define SHARED_REGION_NESTING_BASE_ARM64_32     0x1A000000ULL
-#define SHARED_REGION_NESTING_SIZE_ARM64_32     0x40000000ULL
-#define SHARED_REGION_NESTING_MIN_ARM64_32      ?
-#define SHARED_REGION_NESTING_MAX_ARM64_32      ?
-
-#define SHARED_REGION_BASE_ARM64                0x180000000ULL
-#define SHARED_REGION_SIZE_ARM64                0x100000000ULL
-#define SHARED_REGION_NESTING_BASE_ARM64        0x180000000ULL
-#define SHARED_REGION_NESTING_SIZE_ARM64        0x100000000ULL
-#define SHARED_REGION_NESTING_MIN_ARM64         ?
-#define SHARED_REGION_NESTING_MAX_ARM64         ?
-
-#if defined(__i386__)
-#define SHARED_REGION_BASE                      SHARED_REGION_BASE_I386
-#define SHARED_REGION_SIZE                      SHARED_REGION_SIZE_I386
-#define SHARED_REGION_NESTING_BASE              SHARED_REGION_NESTING_BASE_I386
-#define SHARED_REGION_NESTING_SIZE              SHARED_REGION_NESTING_SIZE_I386
-#define SHARED_REGION_NESTING_MIN               SHARED_REGION_NESTING_MIN_I386
-#define SHARED_REGION_NESTING_MAX               SHARED_REGION_NESTING_MAX_I386
-#elif defined(__x86_64__)
-#define SHARED_REGION_BASE                      SHARED_REGION_BASE_X86_64
-#define SHARED_REGION_SIZE                      SHARED_REGION_SIZE_X86_64
-#define SHARED_REGION_NESTING_BASE              SHARED_REGION_NESTING_BASE_X86_64
-#define SHARED_REGION_NESTING_SIZE              SHARED_REGION_NESTING_SIZE_X86_64
-#define SHARED_REGION_NESTING_MIN               SHARED_REGION_NESTING_MIN_X86_64
-#define SHARED_REGION_NESTING_MAX               SHARED_REGION_NESTING_MAX_X86_64
-#endif
-
-/*
- * All shared_region_* declarations are a private interface
- * between dyld and the kernel.
- *
- */
-struct shared_file_mapping_np {
-	mach_vm_address_t       sfm_address;
-	mach_vm_size_t          sfm_size;
-	mach_vm_offset_t        sfm_file_offset;
-	vm_prot_t               sfm_max_prot;
-	vm_prot_t               sfm_init_prot;
-};
-#define VM_PROT_COW  0x8  /* must not interfere with normal prot assignments */
-#define VM_PROT_ZF  0x10  /* must not interfere with normal prot assignments */
-#define VM_PROT_SLIDE  0x20  /* must not interfere with normal prot assignments */
-
-
-__BEGIN_DECLS
-int     shared_region_check_np(uint64_t *startaddress);
-int     shared_region_map_np(int fd,
-    uint32_t mappingCount,
-    const struct shared_file_mapping_np *mappings);
-int     shared_region_slide_np(void);
-__END_DECLS
-
-
-#endif /* _MACH_SHARED_REGION_H_ */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/std_types.defs b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/std_types.defs
deleted file mode 100644
index 0b483836..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/std_types.defs
+++ /dev/null
@@ -1,150 +0,0 @@
-/*
- * Copyright (c) 2002,2000 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- * 
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- * 
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- * 
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- * 
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-/* 
- * Mach Operating System
- * Copyright (c) 1991,1990,1989,1988 Carnegie Mellon University
- * All Rights Reserved.
- * 
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- * 
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- * 
- * Carnegie Mellon requests users of this software to return to
- * 
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- * 
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- */
-/*
- */
-/*
- *	Mach kernel standard interface type declarations
- */
-
-#ifndef	_MACH_STD_TYPES_DEFS_
-#define _MACH_STD_TYPES_DEFS_
-
-/* from ISO/IEC 988:1999 spec */
-/* 7.18.1.1 Exact-width integer types */
-
-type int8_t = MACH_MSG_TYPE_INTEGER_8;
-type uint8_t = MACH_MSG_TYPE_INTEGER_8;
-type int16_t = MACH_MSG_TYPE_INTEGER_16;
-type uint16_t = MACH_MSG_TYPE_INTEGER_16;
-type int32_t = MACH_MSG_TYPE_INTEGER_32;
-type uint32_t = MACH_MSG_TYPE_INTEGER_32;
-type int64_t = MACH_MSG_TYPE_INTEGER_64;
-type uint64_t = MACH_MSG_TYPE_INTEGER_64;
-
-/*
- * Legacy fixed-length Mach types which should
- * be replaced with the Standard types from above.
- */
-type int32 = int32_t;
-type unsigned32 = uint32_t;
-type int64 = int64_t;
-type unsigned64 = uint64_t;
-
-/*
- * Other fixed length Mach types.
- */
-type char = MACH_MSG_TYPE_CHAR;
-type boolean_t = MACH_MSG_TYPE_BOOLEAN;
-
-#include <mach/machine/machine_types.defs>
-
-type kern_return_t = int;
-
-type pointer_t = ^array[] of MACH_MSG_TYPE_BYTE
-	ctype: vm_offset_t;
-
-
-type mach_port_t = MACH_MSG_TYPE_COPY_SEND;
-type mach_port_array_t = array[] of mach_port_t;
-
-type mach_port_name_t = MACH_MSG_TYPE_PORT_NAME;
-type mach_port_name_array_t = array[] of mach_port_name_t;
-
-type mach_port_right_t = natural_t;
-
-type mach_port_type_t = natural_t;
-type mach_port_type_array_t = array[] of mach_port_type_t;
-
-type mach_port_urefs_t = natural_t;
-type mach_port_delta_t = integer_t;
-type mach_port_seqno_t = natural_t;
-type mach_port_mscount_t = unsigned;
-type mach_port_msgcount_t = unsigned;
-type mach_port_rights_t = unsigned;
-type mach_msg_id_t = integer_t;
-type mach_msg_size_t = natural_t;
-type mach_msg_type_name_t = unsigned;
-type mach_msg_options_t = integer_t;
-
-type mach_port_move_receive_t =		MACH_MSG_TYPE_MOVE_RECEIVE
-	ctype: mach_port_t;
-type mach_port_copy_send_t =		MACH_MSG_TYPE_COPY_SEND
-	ctype: mach_port_t;
-type mach_port_make_send_t =		MACH_MSG_TYPE_MAKE_SEND
-	ctype: mach_port_t;
-type mach_port_move_send_t =		MACH_MSG_TYPE_MOVE_SEND
-	ctype: mach_port_t;
-type mach_port_make_send_once_t =	MACH_MSG_TYPE_MAKE_SEND_ONCE
-	ctype: mach_port_t;
-type mach_port_move_send_once_t =	MACH_MSG_TYPE_MOVE_SEND_ONCE
-	ctype: mach_port_t;
-
-type mach_port_receive_t =		MACH_MSG_TYPE_PORT_RECEIVE
-	ctype: mach_port_t;
-type mach_port_send_t =			MACH_MSG_TYPE_PORT_SEND
-	ctype: mach_port_t;
-type mach_port_send_once_t =		MACH_MSG_TYPE_PORT_SEND_ONCE
-	ctype: mach_port_t;
-
-type mach_port_poly_t = polymorphic
-	ctype: mach_port_t;
-
-import <mach/std_types.h>;
-import <mach/mig.h>;
-
-#endif	/* _MACH_STD_TYPES_DEFS_ */
-
-/* vim: set ft=c : */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/std_types.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/std_types.h
deleted file mode 100644
index 5815302d..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/std_types.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Copyright (c) 2002,2000 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-/*
- * Mach Operating System
- * Copyright (c) 1991,1990,1989,1988 Carnegie Mellon University
- * All Rights Reserved.
- *
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- */
-/*
- */
-/*
- *	Mach standard external interface type definitions.
- *
- */
-
-#ifndef _MACH_STD_TYPES_H_
-#define _MACH_STD_TYPES_H_
-
-#include <stdint.h>
-#include <mach/boolean.h>
-#include <mach/kern_return.h>
-#include <mach/port.h>
-#include <mach/vm_types.h>
-
-#include <sys/_types.h>
-#include <sys/_types/_uuid_t.h>
-
-#endif  /* _MACH_STD_TYPES_H_ */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/sync.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/sync.h
deleted file mode 100644
index b3057205..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/sync.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright (c) 1999 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
-** This file contains compatibilty wrapper header for things that used
-** to be generated from mach/sync.defs.  Now that code is split into two
-** different interface generator files, so include the two resulting
-** headers here.
-*/
-#include <mach/semaphore.h>
-#include <mach/lock_set.h>
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/sync_policy.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/sync_policy.h
deleted file mode 100644
index ff487f6a..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/sync_policy.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright (c) 2000-2002 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-
-#ifndef _MACH_SYNC_POLICY_H_
-#define _MACH_SYNC_POLICY_H_
-
-typedef int sync_policy_t;
-
-/*
- *	These options define the wait ordering of the synchronizers
- */
-#define SYNC_POLICY_FIFO                0x0
-#define SYNC_POLICY_FIXED_PRIORITY      0x1
-#define SYNC_POLICY_REVERSED            0x2
-#define SYNC_POLICY_ORDER_MASK          0x3
-#define SYNC_POLICY_LIFO                (SYNC_POLICY_FIFO|SYNC_POLICY_REVERSED)
-
-
-#define SYNC_POLICY_MAX                 0x7
-
-#endif  /* _MACH_SYNC_POLICY_H_ */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/task.defs b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/task.defs
deleted file mode 100644
index 8723a525..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/task.defs
+++ /dev/null
@@ -1,522 +0,0 @@
-/*
- * Copyright (c) 2000-2007 Apple Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- * 
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- * 
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- * 
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- * 
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_FREE_COPYRIGHT@
- */
-/* 
- * Mach Operating System
- * Copyright (c) 1991,1990,1989 Carnegie Mellon University
- * All Rights Reserved.
- * 
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- * 
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- * 
- * Carnegie Mellon requests users of this software to return to
- * 
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- * 
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- */
-/*
- */
-/*
- *	File:	mach/mach_port.defs
- *	Author:	Rich Draves
- *
- *	Exported kernel calls.
- */
-
-subsystem
-#if	KERNEL_SERVER
-	  KernelServer
-#endif	/* KERNEL_SERVER */
-	  task 3400;
-
-#include <mach/std_types.defs>
-#include <mach/mach_types.defs>
-#include <mach_debug/mach_debug_types.defs>
-
-/*
- *	Create a new task with an empty set of IPC rights,
- *	and having an address space constructed from the
- *	target task (or empty, if inherit_memory is FALSE).
- */
-routine task_create(
-		target_task	: task_t;
-		ledgers		: ledger_array_t;
-		inherit_memory	: boolean_t;
-	out	child_task	: task_t);
-
-/*
- *	Destroy the target task, causing all of its threads
- *	to be destroyed, all of its IPC rights to be deallocated,
- *	and all of its address space to be deallocated.
- */
-routine task_terminate(
-		target_task	: task_t);
-
-/*
- *	Returns the set of threads belonging to the target task.
- */
-routine task_threads(
-		target_task	: task_inspect_t;
-	out	act_list	: thread_act_array_t);
-
-/*
- *	Stash a handful of ports for the target task; child
- *	tasks inherit this stash at task_create time.
- */
-routine	mach_ports_register(
-		target_task	: task_t;
-		init_port_set	: mach_port_array_t =
-					^array[] of mach_port_t);
-
-/*
- *	Retrieve the stashed ports for the target task.
- */
-routine	mach_ports_lookup(
-		target_task	: task_t;
-	out	init_port_set	: mach_port_array_t =
-					^array[] of mach_port_t);
-
-/*
- *      Returns information about the target task.
- */
-#ifdef KERNEL_SERVER
-routine task_info_from_user(
-                target_task     : mach_port_t;
-                flavor          : task_flavor_t;
-        out     task_info_out   : task_info_t, CountInOut);
-#else
-routine task_info(
-                target_task     : task_name_t;
-                flavor          : task_flavor_t;
-        out     task_info_out   : task_info_t, CountInOut);
-
-#endif
-/*
- * Set task information.
- */
-routine	task_set_info(
-		target_task	: task_t;
-		flavor		: task_flavor_t;
-		task_info_in	: task_info_t);
-
-/*
- *	Increment the suspend count for the target task.
- *	No threads within a task may run when the suspend
- *	count for that task is non-zero.
- */
-routine	task_suspend(
-		target_task	: task_t);
-
-
-/*
- *	Decrement the suspend count for the target task,
- *	if the count is currently non-zero.  If the resulting
- *	suspend	count is zero, then threads within the task
- *	that also have non-zero suspend counts may execute.
- */
-routine	task_resume(
-		target_task	: task_t);
-
-/*
- *	Returns the current value of the selected special port
- *	associated with the target task.
- */
-routine task_get_special_port(
-		task		: task_inspect_t;
-		which_port	: int;
-	out	special_port	: mach_port_t);
-
-/*
- *	Set one of the special ports associated with the
- *	target task.
- */
-routine task_set_special_port(
-		task		: task_t;
-		which_port	: int;
-		special_port	: mach_port_t);
-
-/*
- *	Create a new thread within the target task, returning
- *	the port representing the first thr_act in that new thread.  The
- *	initial execution state of the thread is undefined.
- */
-routine
-#ifdef KERNEL_SERVER
-thread_create_from_user(
-#else
-thread_create(
-#endif
-		parent_task	: task_t;
-	out	child_act	: thread_act_t);
-
-/*
- *      Create a new thread within the target task, returning
- *      the port representing that new thread.  The new thread 
- *	is not suspended; its initial execution state is given
- *	by flavor and new_state. Returns the port representing 
- *	the new thread.
- */
-routine
-#ifdef KERNEL_SERVER
-thread_create_running_from_user(
-#else
-thread_create_running(
-#endif
-                parent_task     : task_t;
-                flavor          : thread_state_flavor_t;
-                new_state       : thread_state_t;
-        out     child_act       : thread_act_t);
-
-/*
- * Set an exception handler for a task on one or more exception types.
- * These handlers are invoked for all threads in the task if there are
- * no thread-specific exception handlers or those handlers returned an
- * error.
- */
-routine	task_set_exception_ports(
-		task		: task_t;
-		exception_mask	: exception_mask_t;
-		new_port	: mach_port_t;
-		behavior	: exception_behavior_t;
-		new_flavor	: thread_state_flavor_t);
-
-
-/*
- * Lookup some of the old exception handlers for a task
- */
-routine	task_get_exception_ports(
-		task		: task_inspect_t;
-		exception_mask	: exception_mask_t;
-	  out	masks		: exception_mask_array_t;
-	  out	old_handlers	: exception_handler_array_t, SameCount;
-	  out	old_behaviors	: exception_behavior_array_t, SameCount;
-	  out	old_flavors	: exception_flavor_array_t, SameCount);
-
-
-/*
- * Set an exception handler for a thread on one or more exception types.
- * At the same time, return the previously defined exception handlers for
- * those types.
- */
-routine	task_swap_exception_ports(
-		task		: task_t;
-		exception_mask	: exception_mask_t;
-		new_port	: mach_port_t;
-		behavior	: exception_behavior_t;
-		new_flavor	: thread_state_flavor_t;
-	  out	masks		: exception_mask_array_t;
-	  out	old_handlerss	: exception_handler_array_t, SameCount;
-	  out	old_behaviors	: exception_behavior_array_t, SameCount;
-	  out	old_flavors	: exception_flavor_array_t, SameCount);
-
-/*
- * OBSOLETE interface.
- */
-routine lock_set_create(
-		task		: task_t;
-	out	new_lock_set	: lock_set_t;
-		n_ulocks	: int;
-		policy		: int);
-
-/*
- * OBSOLETE interface.
- */
-routine lock_set_destroy(
-		task		: task_t;
-		lock_set	: lock_set_t);
-
-/*
- * Create and destroy semaphore synchronizers on a
- * per-task basis (i.e. the task owns them).
- */
-
-routine semaphore_create(
-		task		: task_t;
-	out	semaphore	: semaphore_t;
-		policy		: int;
-		value		: int);
-
-routine semaphore_destroy(
-		task		: task_t;
-		semaphore	: semaphore_consume_ref_t);
-
-/*
- * Set/get policy information for a task.
- * (Approved Mac OS X microkernel interface)
- */
-
-routine task_policy_set(
-	task			: task_t;
-	flavor			: task_policy_flavor_t;
-	policy_info		: task_policy_t);
-
-routine task_policy_get(
-	task			: task_t;
-	flavor			: task_policy_flavor_t;
-out	policy_info		: task_policy_t, CountInOut;
-inout	get_default		: boolean_t);
-
-/*
- *	Removed from the kernel.
- */
-#if KERNEL_SERVER
-skip;
-#else
-routine task_sample(
-		task		: task_t;
-		reply		: mach_port_make_send_t);
-#endif
-
-/*
- * JMM - Everything from here down is likely to go away soon
- */
-/*
- * OBSOLETE interface.
- */
-routine task_policy(
-	task			: task_t;
-	policy			: policy_t;
-	base			: policy_base_t;
-	set_limit		: boolean_t;
-	change			: boolean_t);
-
-
-/*
- *	Establish a user-level handler for the specified
- *	system call.
- */
-routine task_set_emulation(
-		target_port	: task_t;
-		routine_entry_pt: vm_address_t;
-		routine_number  : int);	
-
-/*
- *	Get user-level handler entry points for all
- *	emulated system calls.
- */
-routine task_get_emulation_vector(
-		task		: task_t;
-	out	vector_start	: int;
-	out	emulation_vector: emulation_vector_t);
-
-/*
- *	Establish user-level handlers for the specified
- *	system calls. Non-emulated system calls are specified
- *	with emulation_vector[i] == EML_ROUTINE_NULL.
- */
-routine task_set_emulation_vector(
-		task		: task_t;
-		vector_start	: int;
-		emulation_vector: emulation_vector_t);
-
-
-/*
- *      Establish restart pc for interrupted atomic sequences.
- */
-routine task_set_ras_pc(
-		target_task     : task_t;
-		basepc          : vm_address_t;
-		boundspc        : vm_address_t);
-
-
-/*
- * Return zone info as seen/used by this task.
- */
-routine task_zone_info(
-		target_task	: task_t;
-	out	names		: mach_zone_name_array_t,
-					Dealloc;
-	out	info		: task_zone_info_array_t,
-					Dealloc);
-
-
-/* 
- * JMM - Want to eliminate processor_set so keep them at the end.
- */
-
-/*
- *	Assign task to processor set.
- */
-routine task_assign(
-		task		: task_t;
-		new_set		: processor_set_t;
-		assign_threads	: boolean_t);
-
-/*
- *	Assign task to default set.
- */
-routine task_assign_default(
-		task		: task_t;
-		assign_threads	: boolean_t);
-
-/*
- *	Get current assignment for task.
- */
-routine task_get_assignment(
-		task		: task_t;
-	out	assigned_set	: processor_set_name_t);
-
-/*
- * OBSOLETE interface.
- */
-routine task_set_policy(
-	task			: task_t;
-	pset			: processor_set_t;
-	policy			: policy_t;
-	base			: policy_base_t;
-	limit			: policy_limit_t;
-	change			: boolean_t);
-
-/*
- * Read the selected state which is to be installed on new 
- * threads in the task as they are created.
- */
-routine task_get_state(
-		task		: task_t;
-		flavor		: thread_state_flavor_t;
-	out	old_state	: thread_state_t, CountInOut);
- 
-/*
- * Set the selected state information to be installed on
- * all subsequently created threads in the task.
- */
-routine	task_set_state(
-		task		: task_t;
-		flavor		: thread_state_flavor_t;
-		new_state	: thread_state_t);
-
-/*
- * Change the task's physical footprint limit (in MB).
- */
-routine task_set_phys_footprint_limit(
-		task		: task_t;
-		new_limit	: int;
-	out old_limit	: int);
-
-routine task_suspend2(
-		target_task : task_t;
-	out suspend_token : task_suspension_token_t);
-
-routine task_resume2(
-		suspend_token : task_suspension_token_t);
-
-routine task_purgable_info(
-		task 		: task_t;
-	out	stats		: task_purgable_info_t);
-
-routine task_get_mach_voucher(
-		task		: task_t;
-		which		: mach_voucher_selector_t;
-	out	voucher		: ipc_voucher_t);
-
-routine task_set_mach_voucher(
-		task		: task_t;
-		voucher		: ipc_voucher_t);
-
-routine task_swap_mach_voucher(
-		task		: task_t;
-		new_voucher	: ipc_voucher_t;
-	inout	old_voucher	: ipc_voucher_t);
-
-routine task_generate_corpse(
-		task		:task_t;
-	out	corpse_task_port:mach_port_t);
-
-routine task_map_corpse_info(
-		task		:task_t;
-		corspe_task	:task_t;
-	out	kcd_addr_begin	:vm_address_t;
-	out	kcd_size	:uint32_t);
-
-routine task_register_dyld_image_infos(
-        task            :task_t;
-        dyld_images     :dyld_kernel_image_info_array_t);
-
-routine task_unregister_dyld_image_infos(
-        task            :task_t;
-        dyld_images     :dyld_kernel_image_info_array_t);
-
-routine task_get_dyld_image_infos(
-        task            :task_inspect_t;
-    out dyld_images     :dyld_kernel_image_info_array_t);
-
-routine task_register_dyld_shared_cache_image_info(
-        task                :task_t;
-        dyld_cache_image    :dyld_kernel_image_info_t;
-        no_cache            :boolean_t;
-        private_cache       :boolean_t);
-
-routine task_register_dyld_set_dyld_state(
-        task           :task_t;
-        dyld_state     :uint8_t);
-
-routine task_register_dyld_get_process_state(
-        task                :task_t;
-    out dyld_process_state  :dyld_kernel_process_info_t);
-
-routine task_map_corpse_info_64(
-		task		:task_t;
-		corspe_task	:task_t;
-	out	kcd_addr_begin	:mach_vm_address_t;
-	out	kcd_size	:mach_vm_size_t);
-
-routine task_inspect(
-	    task     : task_inspect_t;
-	    flavor   : task_inspect_flavor_t;
-	out info_out : task_inspect_info_t, CountInOut);
-
-routine task_get_exc_guard_behavior(
-		task	 : task_inspect_t;
-	out behavior : task_exc_guard_behavior_t);
-
-routine task_set_exc_guard_behavior(
-		task	 : task_t;
-		behavior : task_exc_guard_behavior_t);
-		
-routine task_create_suid_cred(
-		task		: task_t;
-		path		: suid_cred_path_t;
-		uid		: suid_cred_uid_t;
-	out	delegation	: suid_cred_t);
-
-/* vim: set ft=c : */
-
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/task.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/task.h
deleted file mode 100644
index 20019654..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/task.h
+++ /dev/null
@@ -1,2523 +0,0 @@
-#ifndef	_task_user_
-#define	_task_user_
-
-/* Module task */
-
-#include <string.h>
-#include <mach/ndr.h>
-#include <mach/boolean.h>
-#include <mach/kern_return.h>
-#include <mach/notify.h>
-#include <mach/mach_types.h>
-#include <mach/message.h>
-#include <mach/mig_errors.h>
-#include <mach/port.h>
-	
-/* BEGIN MIG_STRNCPY_ZEROFILL CODE */
-
-#if defined(__has_include)
-#if __has_include(<mach/mig_strncpy_zerofill_support.h>)
-#ifndef USING_MIG_STRNCPY_ZEROFILL
-#define USING_MIG_STRNCPY_ZEROFILL
-#endif
-#ifndef __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
-#define __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
-#ifdef __cplusplus
-extern "C" {
-#endif
-	extern int mig_strncpy_zerofill(char *dest, const char *src, int len) __attribute__((weak_import));
-#ifdef __cplusplus
-}
-#endif
-#endif /* __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__ */
-#endif /* __has_include(<mach/mig_strncpy_zerofill_support.h>) */
-#endif /* __has_include */
-	
-/* END MIG_STRNCPY_ZEROFILL CODE */
-
-
-#ifdef AUTOTEST
-#ifndef FUNCTION_PTR_T
-#define FUNCTION_PTR_T
-typedef void (*function_ptr_t)(mach_port_t, char *, mach_msg_type_number_t);
-typedef struct {
-        char            *name;
-        function_ptr_t  function;
-} function_table_entry;
-typedef function_table_entry   *function_table_t;
-#endif /* FUNCTION_PTR_T */
-#endif /* AUTOTEST */
-
-#ifndef	task_MSG_COUNT
-#define	task_MSG_COUNT	55
-#endif	/* task_MSG_COUNT */
-
-#include <mach/std_types.h>
-#include <mach/mig.h>
-#include <mach/mig.h>
-#include <mach/mach_types.h>
-#include <mach_debug/mach_debug_types.h>
-
-#ifdef __BeforeMigUserHeader
-__BeforeMigUserHeader
-#endif /* __BeforeMigUserHeader */
-
-#include <sys/cdefs.h>
-__BEGIN_DECLS
-
-
-/* Routine task_create */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t task_create
-(
-	task_t target_task,
-	ledger_array_t ledgers,
-	mach_msg_type_number_t ledgersCnt,
-	boolean_t inherit_memory,
-	task_t *child_task
-);
-
-/* Routine task_terminate */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t task_terminate
-(
-	task_t target_task
-);
-
-/* Routine task_threads */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t task_threads
-(
-	task_inspect_t target_task,
-	thread_act_array_t *act_list,
-	mach_msg_type_number_t *act_listCnt
-);
-
-/* Routine mach_ports_register */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
-kern_return_t mach_ports_register
-(
-	task_t target_task,
-	mach_port_array_t init_port_set,
-	mach_msg_type_number_t init_port_setCnt
-);
-
-/* Routine mach_ports_lookup */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
-kern_return_t mach_ports_lookup
-(
-	task_t target_task,
-	mach_port_array_t *init_port_set,
-	mach_msg_type_number_t *init_port_setCnt
-);
-
-/* Routine task_info */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t task_info
-(
-	task_name_t target_task,
-	task_flavor_t flavor,
-	task_info_t task_info_out,
-	mach_msg_type_number_t *task_info_outCnt
-);
-
-/* Routine task_set_info */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
-kern_return_t task_set_info
-(
-	task_t target_task,
-	task_flavor_t flavor,
-	task_info_t task_info_in,
-	mach_msg_type_number_t task_info_inCnt
-);
-
-/* Routine task_suspend */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
-kern_return_t task_suspend
-(
-	task_t target_task
-);
-
-/* Routine task_resume */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
-kern_return_t task_resume
-(
-	task_t target_task
-);
-
-/* Routine task_get_special_port */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
-kern_return_t task_get_special_port
-(
-	task_inspect_t task,
-	int which_port,
-	mach_port_t *special_port
-);
-
-/* Routine task_set_special_port */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
-kern_return_t task_set_special_port
-(
-	task_t task,
-	int which_port,
-	mach_port_t special_port
-);
-
-/* Routine thread_create */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
-kern_return_t thread_create
-(
-	task_t parent_task,
-	thread_act_t *child_act
-);
-
-/* Routine thread_create_running */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
-kern_return_t thread_create_running
-(
-	task_t parent_task,
-	thread_state_flavor_t flavor,
-	thread_state_t new_state,
-	mach_msg_type_number_t new_stateCnt,
-	thread_act_t *child_act
-);
-
-/* Routine task_set_exception_ports */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
-kern_return_t task_set_exception_ports
-(
-	task_t task,
-	exception_mask_t exception_mask,
-	mach_port_t new_port,
-	exception_behavior_t behavior,
-	thread_state_flavor_t new_flavor
-);
-
-/* Routine task_get_exception_ports */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
-kern_return_t task_get_exception_ports
-(
-	task_inspect_t task,
-	exception_mask_t exception_mask,
-	exception_mask_array_t masks,
-	mach_msg_type_number_t *masksCnt,
-	exception_handler_array_t old_handlers,
-	exception_behavior_array_t old_behaviors,
-	exception_flavor_array_t old_flavors
-);
-
-/* Routine task_swap_exception_ports */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
-kern_return_t task_swap_exception_ports
-(
-	task_t task,
-	exception_mask_t exception_mask,
-	mach_port_t new_port,
-	exception_behavior_t behavior,
-	thread_state_flavor_t new_flavor,
-	exception_mask_array_t masks,
-	mach_msg_type_number_t *masksCnt,
-	exception_handler_array_t old_handlerss,
-	exception_behavior_array_t old_behaviors,
-	exception_flavor_array_t old_flavors
-);
-
-/* Routine lock_set_create */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t lock_set_create
-(
-	task_t task,
-	lock_set_t *new_lock_set,
-	int n_ulocks,
-	int policy
-);
-
-/* Routine lock_set_destroy */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t lock_set_destroy
-(
-	task_t task,
-	lock_set_t lock_set
-);
-
-/* Routine semaphore_create */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t semaphore_create
-(
-	task_t task,
-	semaphore_t *semaphore,
-	int policy,
-	int value
-);
-
-/* Routine semaphore_destroy */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t semaphore_destroy
-(
-	task_t task,
-	semaphore_t semaphore
-);
-
-/* Routine task_policy_set */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
-kern_return_t task_policy_set
-(
-	task_t task,
-	task_policy_flavor_t flavor,
-	task_policy_t policy_info,
-	mach_msg_type_number_t policy_infoCnt
-);
-
-/* Routine task_policy_get */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
-kern_return_t task_policy_get
-(
-	task_t task,
-	task_policy_flavor_t flavor,
-	task_policy_t policy_info,
-	mach_msg_type_number_t *policy_infoCnt,
-	boolean_t *get_default
-);
-
-/* Routine task_sample */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t task_sample
-(
-	task_t task,
-	mach_port_t reply
-);
-
-/* Routine task_policy */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t task_policy
-(
-	task_t task,
-	policy_t policy,
-	policy_base_t base,
-	mach_msg_type_number_t baseCnt,
-	boolean_t set_limit,
-	boolean_t change
-);
-
-/* Routine task_set_emulation */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t task_set_emulation
-(
-	task_t target_port,
-	vm_address_t routine_entry_pt,
-	int routine_number
-);
-
-/* Routine task_get_emulation_vector */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t task_get_emulation_vector
-(
-	task_t task,
-	int *vector_start,
-	emulation_vector_t *emulation_vector,
-	mach_msg_type_number_t *emulation_vectorCnt
-);
-
-/* Routine task_set_emulation_vector */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t task_set_emulation_vector
-(
-	task_t task,
-	int vector_start,
-	emulation_vector_t emulation_vector,
-	mach_msg_type_number_t emulation_vectorCnt
-);
-
-/* Routine task_set_ras_pc */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t task_set_ras_pc
-(
-	task_t target_task,
-	vm_address_t basepc,
-	vm_address_t boundspc
-);
-
-/* Routine task_zone_info */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
-kern_return_t task_zone_info
-(
-	task_t target_task,
-	mach_zone_name_array_t *names,
-	mach_msg_type_number_t *namesCnt,
-	task_zone_info_array_t *info,
-	mach_msg_type_number_t *infoCnt
-);
-
-/* Routine task_assign */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t task_assign
-(
-	task_t task,
-	processor_set_t new_set,
-	boolean_t assign_threads
-);
-
-/* Routine task_assign_default */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t task_assign_default
-(
-	task_t task,
-	boolean_t assign_threads
-);
-
-/* Routine task_get_assignment */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t task_get_assignment
-(
-	task_t task,
-	processor_set_name_t *assigned_set
-);
-
-/* Routine task_set_policy */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t task_set_policy
-(
-	task_t task,
-	processor_set_t pset,
-	policy_t policy,
-	policy_base_t base,
-	mach_msg_type_number_t baseCnt,
-	policy_limit_t limit,
-	mach_msg_type_number_t limitCnt,
-	boolean_t change
-);
-
-/* Routine task_get_state */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
-kern_return_t task_get_state
-(
-	task_t task,
-	thread_state_flavor_t flavor,
-	thread_state_t old_state,
-	mach_msg_type_number_t *old_stateCnt
-);
-
-/* Routine task_set_state */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
-kern_return_t task_set_state
-(
-	task_t task,
-	thread_state_flavor_t flavor,
-	thread_state_t new_state,
-	mach_msg_type_number_t new_stateCnt
-);
-
-/* Routine task_set_phys_footprint_limit */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
-kern_return_t task_set_phys_footprint_limit
-(
-	task_t task,
-	int new_limit,
-	int *old_limit
-);
-
-/* Routine task_suspend2 */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
-kern_return_t task_suspend2
-(
-	task_t target_task,
-	task_suspension_token_t *suspend_token
-);
-
-/* Routine task_resume2 */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
-kern_return_t task_resume2
-(
-	task_suspension_token_t suspend_token
-);
-
-/* Routine task_purgable_info */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t task_purgable_info
-(
-	task_t task,
-	task_purgable_info_t *stats
-);
-
-/* Routine task_get_mach_voucher */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
-kern_return_t task_get_mach_voucher
-(
-	task_t task,
-	mach_voucher_selector_t which,
-	ipc_voucher_t *voucher
-);
-
-/* Routine task_set_mach_voucher */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
-kern_return_t task_set_mach_voucher
-(
-	task_t task,
-	ipc_voucher_t voucher
-);
-
-/* Routine task_swap_mach_voucher */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
-kern_return_t task_swap_mach_voucher
-(
-	task_t task,
-	ipc_voucher_t new_voucher,
-	ipc_voucher_t *old_voucher
-);
-
-/* Routine task_generate_corpse */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t task_generate_corpse
-(
-	task_t task,
-	mach_port_t *corpse_task_port
-);
-
-/* Routine task_map_corpse_info */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t task_map_corpse_info
-(
-	task_t task,
-	task_t corspe_task,
-	vm_address_t *kcd_addr_begin,
-	uint32_t *kcd_size
-);
-
-/* Routine task_register_dyld_image_infos */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t task_register_dyld_image_infos
-(
-	task_t task,
-	dyld_kernel_image_info_array_t dyld_images,
-	mach_msg_type_number_t dyld_imagesCnt
-);
-
-/* Routine task_unregister_dyld_image_infos */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t task_unregister_dyld_image_infos
-(
-	task_t task,
-	dyld_kernel_image_info_array_t dyld_images,
-	mach_msg_type_number_t dyld_imagesCnt
-);
-
-/* Routine task_get_dyld_image_infos */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t task_get_dyld_image_infos
-(
-	task_inspect_t task,
-	dyld_kernel_image_info_array_t *dyld_images,
-	mach_msg_type_number_t *dyld_imagesCnt
-);
-
-/* Routine task_register_dyld_shared_cache_image_info */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t task_register_dyld_shared_cache_image_info
-(
-	task_t task,
-	dyld_kernel_image_info_t dyld_cache_image,
-	boolean_t no_cache,
-	boolean_t private_cache
-);
-
-/* Routine task_register_dyld_set_dyld_state */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t task_register_dyld_set_dyld_state
-(
-	task_t task,
-	uint8_t dyld_state
-);
-
-/* Routine task_register_dyld_get_process_state */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t task_register_dyld_get_process_state
-(
-	task_t task,
-	dyld_kernel_process_info_t *dyld_process_state
-);
-
-/* Routine task_map_corpse_info_64 */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t task_map_corpse_info_64
-(
-	task_t task,
-	task_t corspe_task,
-	mach_vm_address_t *kcd_addr_begin,
-	mach_vm_size_t *kcd_size
-);
-
-/* Routine task_inspect */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t task_inspect
-(
-	task_inspect_t task,
-	task_inspect_flavor_t flavor,
-	task_inspect_info_t info_out,
-	mach_msg_type_number_t *info_outCnt
-);
-
-/* Routine task_get_exc_guard_behavior */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t task_get_exc_guard_behavior
-(
-	task_inspect_t task,
-	task_exc_guard_behavior_t *behavior
-);
-
-/* Routine task_set_exc_guard_behavior */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t task_set_exc_guard_behavior
-(
-	task_t task,
-	task_exc_guard_behavior_t behavior
-);
-
-/* Routine task_create_suid_cred */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t task_create_suid_cred
-(
-	task_t task,
-	suid_cred_path_t path,
-	suid_cred_uid_t uid,
-	suid_cred_t *delegation
-);
-
-__END_DECLS
-
-/********************** Caution **************************/
-/* The following data types should be used to calculate  */
-/* maximum message sizes only. The actual message may be */
-/* smaller, and the position of the arguments within the */
-/* message layout may vary from what is presented here.  */
-/* For example, if any of the arguments are variable-    */
-/* sized, and less than the maximum is sent, the data    */
-/* will be packed tight in the actual message to reduce  */
-/* the presence of holes.                                */
-/********************** Caution **************************/
-
-/* typedefs for all requests */
-
-#ifndef __Request__task_subsystem__defined
-#define __Request__task_subsystem__defined
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_ool_ports_descriptor_t ledgers;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		mach_msg_type_number_t ledgersCnt;
-		boolean_t inherit_memory;
-	} __Request__task_create_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__task_terminate_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__task_threads_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_ool_ports_descriptor_t init_port_set;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		mach_msg_type_number_t init_port_setCnt;
-	} __Request__mach_ports_register_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__mach_ports_lookup_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		task_flavor_t flavor;
-		mach_msg_type_number_t task_info_outCnt;
-	} __Request__task_info_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		task_flavor_t flavor;
-		mach_msg_type_number_t task_info_inCnt;
-		integer_t task_info_in[87];
-	} __Request__task_set_info_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__task_suspend_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__task_resume_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		int which_port;
-	} __Request__task_get_special_port_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t special_port;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		int which_port;
-	} __Request__task_set_special_port_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__thread_create_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		thread_state_flavor_t flavor;
-		mach_msg_type_number_t new_stateCnt;
-		natural_t new_state[614];
-	} __Request__thread_create_running_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t new_port;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		exception_mask_t exception_mask;
-		exception_behavior_t behavior;
-		thread_state_flavor_t new_flavor;
-	} __Request__task_set_exception_ports_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		exception_mask_t exception_mask;
-	} __Request__task_get_exception_ports_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t new_port;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		exception_mask_t exception_mask;
-		exception_behavior_t behavior;
-		thread_state_flavor_t new_flavor;
-	} __Request__task_swap_exception_ports_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		int n_ulocks;
-		int policy;
-	} __Request__lock_set_create_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t lock_set;
-		/* end of the kernel processed data */
-	} __Request__lock_set_destroy_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		int policy;
-		int value;
-	} __Request__semaphore_create_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t semaphore;
-		/* end of the kernel processed data */
-	} __Request__semaphore_destroy_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		task_policy_flavor_t flavor;
-		mach_msg_type_number_t policy_infoCnt;
-		integer_t policy_info[16];
-	} __Request__task_policy_set_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		task_policy_flavor_t flavor;
-		mach_msg_type_number_t policy_infoCnt;
-		boolean_t get_default;
-	} __Request__task_policy_get_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t reply;
-		/* end of the kernel processed data */
-	} __Request__task_sample_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		policy_t policy;
-		mach_msg_type_number_t baseCnt;
-		integer_t base[5];
-		boolean_t set_limit;
-		boolean_t change;
-	} __Request__task_policy_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		vm_address_t routine_entry_pt;
-		int routine_number;
-	} __Request__task_set_emulation_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__task_get_emulation_vector_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_ool_descriptor_t emulation_vector;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		int vector_start;
-		mach_msg_type_number_t emulation_vectorCnt;
-	} __Request__task_set_emulation_vector_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		vm_address_t basepc;
-		vm_address_t boundspc;
-	} __Request__task_set_ras_pc_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__task_zone_info_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t new_set;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		boolean_t assign_threads;
-	} __Request__task_assign_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		boolean_t assign_threads;
-	} __Request__task_assign_default_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__task_get_assignment_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t pset;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		policy_t policy;
-		mach_msg_type_number_t baseCnt;
-		integer_t base[5];
-		mach_msg_type_number_t limitCnt;
-		integer_t limit[1];
-		boolean_t change;
-	} __Request__task_set_policy_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		thread_state_flavor_t flavor;
-		mach_msg_type_number_t old_stateCnt;
-	} __Request__task_get_state_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		thread_state_flavor_t flavor;
-		mach_msg_type_number_t new_stateCnt;
-		natural_t new_state[614];
-	} __Request__task_set_state_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		int new_limit;
-	} __Request__task_set_phys_footprint_limit_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__task_suspend2_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__task_resume2_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__task_purgable_info_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		mach_voucher_selector_t which;
-	} __Request__task_get_mach_voucher_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t voucher;
-		/* end of the kernel processed data */
-	} __Request__task_set_mach_voucher_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t new_voucher;
-		mach_msg_port_descriptor_t old_voucher;
-		/* end of the kernel processed data */
-	} __Request__task_swap_mach_voucher_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__task_generate_corpse_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t corspe_task;
-		/* end of the kernel processed data */
-	} __Request__task_map_corpse_info_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_ool_descriptor_t dyld_images;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		mach_msg_type_number_t dyld_imagesCnt;
-	} __Request__task_register_dyld_image_infos_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_ool_descriptor_t dyld_images;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		mach_msg_type_number_t dyld_imagesCnt;
-	} __Request__task_unregister_dyld_image_infos_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__task_get_dyld_image_infos_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		dyld_kernel_image_info_t dyld_cache_image;
-		boolean_t no_cache;
-		boolean_t private_cache;
-	} __Request__task_register_dyld_shared_cache_image_info_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		uint8_t dyld_state;
-		char dyld_statePad[3];
-	} __Request__task_register_dyld_set_dyld_state_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__task_register_dyld_get_process_state_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t corspe_task;
-		/* end of the kernel processed data */
-	} __Request__task_map_corpse_info_64_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		task_inspect_flavor_t flavor;
-		mach_msg_type_number_t info_outCnt;
-	} __Request__task_inspect_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__task_get_exc_guard_behavior_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		task_exc_guard_behavior_t behavior;
-	} __Request__task_set_exc_guard_behavior_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		mach_msg_type_number_t pathOffset; /* MiG doesn't use it */
-		mach_msg_type_number_t pathCnt;
-		char path[1024];
-		suid_cred_uid_t uid;
-	} __Request__task_create_suid_cred_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-#endif /* !__Request__task_subsystem__defined */
-
-/* union of all requests */
-
-#ifndef __RequestUnion__task_subsystem__defined
-#define __RequestUnion__task_subsystem__defined
-union __RequestUnion__task_subsystem {
-	__Request__task_create_t Request_task_create;
-	__Request__task_terminate_t Request_task_terminate;
-	__Request__task_threads_t Request_task_threads;
-	__Request__mach_ports_register_t Request_mach_ports_register;
-	__Request__mach_ports_lookup_t Request_mach_ports_lookup;
-	__Request__task_info_t Request_task_info;
-	__Request__task_set_info_t Request_task_set_info;
-	__Request__task_suspend_t Request_task_suspend;
-	__Request__task_resume_t Request_task_resume;
-	__Request__task_get_special_port_t Request_task_get_special_port;
-	__Request__task_set_special_port_t Request_task_set_special_port;
-	__Request__thread_create_t Request_thread_create;
-	__Request__thread_create_running_t Request_thread_create_running;
-	__Request__task_set_exception_ports_t Request_task_set_exception_ports;
-	__Request__task_get_exception_ports_t Request_task_get_exception_ports;
-	__Request__task_swap_exception_ports_t Request_task_swap_exception_ports;
-	__Request__lock_set_create_t Request_lock_set_create;
-	__Request__lock_set_destroy_t Request_lock_set_destroy;
-	__Request__semaphore_create_t Request_semaphore_create;
-	__Request__semaphore_destroy_t Request_semaphore_destroy;
-	__Request__task_policy_set_t Request_task_policy_set;
-	__Request__task_policy_get_t Request_task_policy_get;
-	__Request__task_sample_t Request_task_sample;
-	__Request__task_policy_t Request_task_policy;
-	__Request__task_set_emulation_t Request_task_set_emulation;
-	__Request__task_get_emulation_vector_t Request_task_get_emulation_vector;
-	__Request__task_set_emulation_vector_t Request_task_set_emulation_vector;
-	__Request__task_set_ras_pc_t Request_task_set_ras_pc;
-	__Request__task_zone_info_t Request_task_zone_info;
-	__Request__task_assign_t Request_task_assign;
-	__Request__task_assign_default_t Request_task_assign_default;
-	__Request__task_get_assignment_t Request_task_get_assignment;
-	__Request__task_set_policy_t Request_task_set_policy;
-	__Request__task_get_state_t Request_task_get_state;
-	__Request__task_set_state_t Request_task_set_state;
-	__Request__task_set_phys_footprint_limit_t Request_task_set_phys_footprint_limit;
-	__Request__task_suspend2_t Request_task_suspend2;
-	__Request__task_resume2_t Request_task_resume2;
-	__Request__task_purgable_info_t Request_task_purgable_info;
-	__Request__task_get_mach_voucher_t Request_task_get_mach_voucher;
-	__Request__task_set_mach_voucher_t Request_task_set_mach_voucher;
-	__Request__task_swap_mach_voucher_t Request_task_swap_mach_voucher;
-	__Request__task_generate_corpse_t Request_task_generate_corpse;
-	__Request__task_map_corpse_info_t Request_task_map_corpse_info;
-	__Request__task_register_dyld_image_infos_t Request_task_register_dyld_image_infos;
-	__Request__task_unregister_dyld_image_infos_t Request_task_unregister_dyld_image_infos;
-	__Request__task_get_dyld_image_infos_t Request_task_get_dyld_image_infos;
-	__Request__task_register_dyld_shared_cache_image_info_t Request_task_register_dyld_shared_cache_image_info;
-	__Request__task_register_dyld_set_dyld_state_t Request_task_register_dyld_set_dyld_state;
-	__Request__task_register_dyld_get_process_state_t Request_task_register_dyld_get_process_state;
-	__Request__task_map_corpse_info_64_t Request_task_map_corpse_info_64;
-	__Request__task_inspect_t Request_task_inspect;
-	__Request__task_get_exc_guard_behavior_t Request_task_get_exc_guard_behavior;
-	__Request__task_set_exc_guard_behavior_t Request_task_set_exc_guard_behavior;
-	__Request__task_create_suid_cred_t Request_task_create_suid_cred;
-};
-#endif /* !__RequestUnion__task_subsystem__defined */
-/* typedefs for all replies */
-
-#ifndef __Reply__task_subsystem__defined
-#define __Reply__task_subsystem__defined
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t child_task;
-		/* end of the kernel processed data */
-	} __Reply__task_create_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__task_terminate_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_ool_ports_descriptor_t act_list;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		mach_msg_type_number_t act_listCnt;
-	} __Reply__task_threads_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__mach_ports_register_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_ool_ports_descriptor_t init_port_set;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		mach_msg_type_number_t init_port_setCnt;
-	} __Reply__mach_ports_lookup_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		mach_msg_type_number_t task_info_outCnt;
-		integer_t task_info_out[87];
-	} __Reply__task_info_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__task_set_info_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__task_suspend_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__task_resume_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t special_port;
-		/* end of the kernel processed data */
-	} __Reply__task_get_special_port_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__task_set_special_port_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t child_act;
-		/* end of the kernel processed data */
-	} __Reply__thread_create_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t child_act;
-		/* end of the kernel processed data */
-	} __Reply__thread_create_running_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__task_set_exception_ports_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t old_handlers[32];
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		mach_msg_type_number_t masksCnt;
-		exception_mask_t masks[32];
-		exception_behavior_t old_behaviors[32];
-		thread_state_flavor_t old_flavors[32];
-	} __Reply__task_get_exception_ports_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t old_handlerss[32];
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		mach_msg_type_number_t masksCnt;
-		exception_mask_t masks[32];
-		exception_behavior_t old_behaviors[32];
-		thread_state_flavor_t old_flavors[32];
-	} __Reply__task_swap_exception_ports_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t new_lock_set;
-		/* end of the kernel processed data */
-	} __Reply__lock_set_create_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__lock_set_destroy_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t semaphore;
-		/* end of the kernel processed data */
-	} __Reply__semaphore_create_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__semaphore_destroy_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__task_policy_set_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		mach_msg_type_number_t policy_infoCnt;
-		integer_t policy_info[16];
-		boolean_t get_default;
-	} __Reply__task_policy_get_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__task_sample_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__task_policy_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__task_set_emulation_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_ool_descriptor_t emulation_vector;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		int vector_start;
-		mach_msg_type_number_t emulation_vectorCnt;
-	} __Reply__task_get_emulation_vector_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__task_set_emulation_vector_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__task_set_ras_pc_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_ool_descriptor_t names;
-		mach_msg_ool_descriptor_t info;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		mach_msg_type_number_t namesCnt;
-		mach_msg_type_number_t infoCnt;
-	} __Reply__task_zone_info_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__task_assign_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__task_assign_default_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t assigned_set;
-		/* end of the kernel processed data */
-	} __Reply__task_get_assignment_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__task_set_policy_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		mach_msg_type_number_t old_stateCnt;
-		natural_t old_state[614];
-	} __Reply__task_get_state_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__task_set_state_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		int old_limit;
-	} __Reply__task_set_phys_footprint_limit_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t suspend_token;
-		/* end of the kernel processed data */
-	} __Reply__task_suspend2_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__task_resume2_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		task_purgable_info_t stats;
-	} __Reply__task_purgable_info_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t voucher;
-		/* end of the kernel processed data */
-	} __Reply__task_get_mach_voucher_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__task_set_mach_voucher_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t old_voucher;
-		/* end of the kernel processed data */
-	} __Reply__task_swap_mach_voucher_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t corpse_task_port;
-		/* end of the kernel processed data */
-	} __Reply__task_generate_corpse_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		vm_address_t kcd_addr_begin;
-		uint32_t kcd_size;
-	} __Reply__task_map_corpse_info_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__task_register_dyld_image_infos_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__task_unregister_dyld_image_infos_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_ool_descriptor_t dyld_images;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		mach_msg_type_number_t dyld_imagesCnt;
-	} __Reply__task_get_dyld_image_infos_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__task_register_dyld_shared_cache_image_info_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__task_register_dyld_set_dyld_state_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		dyld_kernel_process_info_t dyld_process_state;
-	} __Reply__task_register_dyld_get_process_state_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		mach_vm_address_t kcd_addr_begin;
-		mach_vm_size_t kcd_size;
-	} __Reply__task_map_corpse_info_64_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		mach_msg_type_number_t info_outCnt;
-		integer_t info_out[4];
-	} __Reply__task_inspect_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		task_exc_guard_behavior_t behavior;
-	} __Reply__task_get_exc_guard_behavior_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__task_set_exc_guard_behavior_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t delegation;
-		/* end of the kernel processed data */
-	} __Reply__task_create_suid_cred_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-#endif /* !__Reply__task_subsystem__defined */
-
-/* union of all replies */
-
-#ifndef __ReplyUnion__task_subsystem__defined
-#define __ReplyUnion__task_subsystem__defined
-union __ReplyUnion__task_subsystem {
-	__Reply__task_create_t Reply_task_create;
-	__Reply__task_terminate_t Reply_task_terminate;
-	__Reply__task_threads_t Reply_task_threads;
-	__Reply__mach_ports_register_t Reply_mach_ports_register;
-	__Reply__mach_ports_lookup_t Reply_mach_ports_lookup;
-	__Reply__task_info_t Reply_task_info;
-	__Reply__task_set_info_t Reply_task_set_info;
-	__Reply__task_suspend_t Reply_task_suspend;
-	__Reply__task_resume_t Reply_task_resume;
-	__Reply__task_get_special_port_t Reply_task_get_special_port;
-	__Reply__task_set_special_port_t Reply_task_set_special_port;
-	__Reply__thread_create_t Reply_thread_create;
-	__Reply__thread_create_running_t Reply_thread_create_running;
-	__Reply__task_set_exception_ports_t Reply_task_set_exception_ports;
-	__Reply__task_get_exception_ports_t Reply_task_get_exception_ports;
-	__Reply__task_swap_exception_ports_t Reply_task_swap_exception_ports;
-	__Reply__lock_set_create_t Reply_lock_set_create;
-	__Reply__lock_set_destroy_t Reply_lock_set_destroy;
-	__Reply__semaphore_create_t Reply_semaphore_create;
-	__Reply__semaphore_destroy_t Reply_semaphore_destroy;
-	__Reply__task_policy_set_t Reply_task_policy_set;
-	__Reply__task_policy_get_t Reply_task_policy_get;
-	__Reply__task_sample_t Reply_task_sample;
-	__Reply__task_policy_t Reply_task_policy;
-	__Reply__task_set_emulation_t Reply_task_set_emulation;
-	__Reply__task_get_emulation_vector_t Reply_task_get_emulation_vector;
-	__Reply__task_set_emulation_vector_t Reply_task_set_emulation_vector;
-	__Reply__task_set_ras_pc_t Reply_task_set_ras_pc;
-	__Reply__task_zone_info_t Reply_task_zone_info;
-	__Reply__task_assign_t Reply_task_assign;
-	__Reply__task_assign_default_t Reply_task_assign_default;
-	__Reply__task_get_assignment_t Reply_task_get_assignment;
-	__Reply__task_set_policy_t Reply_task_set_policy;
-	__Reply__task_get_state_t Reply_task_get_state;
-	__Reply__task_set_state_t Reply_task_set_state;
-	__Reply__task_set_phys_footprint_limit_t Reply_task_set_phys_footprint_limit;
-	__Reply__task_suspend2_t Reply_task_suspend2;
-	__Reply__task_resume2_t Reply_task_resume2;
-	__Reply__task_purgable_info_t Reply_task_purgable_info;
-	__Reply__task_get_mach_voucher_t Reply_task_get_mach_voucher;
-	__Reply__task_set_mach_voucher_t Reply_task_set_mach_voucher;
-	__Reply__task_swap_mach_voucher_t Reply_task_swap_mach_voucher;
-	__Reply__task_generate_corpse_t Reply_task_generate_corpse;
-	__Reply__task_map_corpse_info_t Reply_task_map_corpse_info;
-	__Reply__task_register_dyld_image_infos_t Reply_task_register_dyld_image_infos;
-	__Reply__task_unregister_dyld_image_infos_t Reply_task_unregister_dyld_image_infos;
-	__Reply__task_get_dyld_image_infos_t Reply_task_get_dyld_image_infos;
-	__Reply__task_register_dyld_shared_cache_image_info_t Reply_task_register_dyld_shared_cache_image_info;
-	__Reply__task_register_dyld_set_dyld_state_t Reply_task_register_dyld_set_dyld_state;
-	__Reply__task_register_dyld_get_process_state_t Reply_task_register_dyld_get_process_state;
-	__Reply__task_map_corpse_info_64_t Reply_task_map_corpse_info_64;
-	__Reply__task_inspect_t Reply_task_inspect;
-	__Reply__task_get_exc_guard_behavior_t Reply_task_get_exc_guard_behavior;
-	__Reply__task_set_exc_guard_behavior_t Reply_task_set_exc_guard_behavior;
-	__Reply__task_create_suid_cred_t Reply_task_create_suid_cred;
-};
-#endif /* !__RequestUnion__task_subsystem__defined */
-
-#ifndef subsystem_to_name_map_task
-#define subsystem_to_name_map_task \
-    { "task_create", 3400 },\
-    { "task_terminate", 3401 },\
-    { "task_threads", 3402 },\
-    { "mach_ports_register", 3403 },\
-    { "mach_ports_lookup", 3404 },\
-    { "task_info", 3405 },\
-    { "task_set_info", 3406 },\
-    { "task_suspend", 3407 },\
-    { "task_resume", 3408 },\
-    { "task_get_special_port", 3409 },\
-    { "task_set_special_port", 3410 },\
-    { "thread_create", 3411 },\
-    { "thread_create_running", 3412 },\
-    { "task_set_exception_ports", 3413 },\
-    { "task_get_exception_ports", 3414 },\
-    { "task_swap_exception_ports", 3415 },\
-    { "lock_set_create", 3416 },\
-    { "lock_set_destroy", 3417 },\
-    { "semaphore_create", 3418 },\
-    { "semaphore_destroy", 3419 },\
-    { "task_policy_set", 3420 },\
-    { "task_policy_get", 3421 },\
-    { "task_sample", 3422 },\
-    { "task_policy", 3423 },\
-    { "task_set_emulation", 3424 },\
-    { "task_get_emulation_vector", 3425 },\
-    { "task_set_emulation_vector", 3426 },\
-    { "task_set_ras_pc", 3427 },\
-    { "task_zone_info", 3428 },\
-    { "task_assign", 3429 },\
-    { "task_assign_default", 3430 },\
-    { "task_get_assignment", 3431 },\
-    { "task_set_policy", 3432 },\
-    { "task_get_state", 3433 },\
-    { "task_set_state", 3434 },\
-    { "task_set_phys_footprint_limit", 3435 },\
-    { "task_suspend2", 3436 },\
-    { "task_resume2", 3437 },\
-    { "task_purgable_info", 3438 },\
-    { "task_get_mach_voucher", 3439 },\
-    { "task_set_mach_voucher", 3440 },\
-    { "task_swap_mach_voucher", 3441 },\
-    { "task_generate_corpse", 3442 },\
-    { "task_map_corpse_info", 3443 },\
-    { "task_register_dyld_image_infos", 3444 },\
-    { "task_unregister_dyld_image_infos", 3445 },\
-    { "task_get_dyld_image_infos", 3446 },\
-    { "task_register_dyld_shared_cache_image_info", 3447 },\
-    { "task_register_dyld_set_dyld_state", 3448 },\
-    { "task_register_dyld_get_process_state", 3449 },\
-    { "task_map_corpse_info_64", 3450 },\
-    { "task_inspect", 3451 },\
-    { "task_get_exc_guard_behavior", 3452 },\
-    { "task_set_exc_guard_behavior", 3453 },\
-    { "task_create_suid_cred", 3454 }
-#endif
-
-#ifdef __AfterMigUserHeader
-__AfterMigUserHeader
-#endif /* __AfterMigUserHeader */
-
-#endif	 /* _task_user_ */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/task_access.defs b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/task_access.defs
deleted file mode 100644
index 1696fd3c..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/task_access.defs
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Copyright (c) 2006 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- * 
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- * 
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- * 
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- * 
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-
-subsystem
-#if	KERNEL_USER
-		KernelUser
-#endif	/* KERN_USER */
-			task_access 27000;
-
-#include <mach/std_types.defs>
-#include <mach/mach_types.defs>
-
-/*
- *	Verify task_for_pid access for the given pid
- *	Access granted by return value (success/failure)
- */
-routine check_task_access(
-		task_access_port			: mach_port_t;
-		calling_pid				: int32_t;
-		calling_gid				: uint32_t;
-		target_pid				: int32_t;
-		ServerAuditToken	caller_cred 	: audit_token_t);
-
-/*
- *	Search for a code signature for unsigned executables
- */
-routine find_code_signature(
-		task_access_port			: mach_port_t;
-		new_pid					: int32_t);
-
-/* vim: set ft=c : */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/task_info.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/task_info.h
deleted file mode 100644
index 86cfdb34..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/task_info.h
+++ /dev/null
@@ -1,478 +0,0 @@
-/*
- * Copyright (c) 2000-2007, 2015 Apple Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-/*
- * Mach Operating System
- * Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University
- * All Rights Reserved.
- *
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- */
-/*
- *	Machine-independent task information structures and definitions.
- *
- *	The definitions in this file are exported to the user.  The kernel
- *	will translate its internal data structures to these structures
- *	as appropriate.
- *
- */
-
-#ifndef _MACH_TASK_INFO_H_
-#define _MACH_TASK_INFO_H_
-
-#include <mach/message.h>
-#include <mach/machine/vm_types.h>
-#include <mach/time_value.h>
-#include <mach/policy.h>
-#include <mach/vm_statistics.h> /* for vm_extmod_statistics_data_t */
-#include <Availability.h>
-
-#include <sys/cdefs.h>
-
-/*
- *	Generic information structure to allow for expansion.
- */
-typedef natural_t       task_flavor_t;
-typedef integer_t       *task_info_t;           /* varying array of int */
-
-/* Deprecated, use per structure _data_t's instead */
-#define TASK_INFO_MAX   (1024)          /* maximum array size */
-typedef integer_t       task_info_data_t[TASK_INFO_MAX];
-
-/*
- *	Currently defined information structures.
- */
-
-#pragma pack(push, 4)
-
-/* Don't use this, use MACH_TASK_BASIC_INFO instead */
-#define TASK_BASIC_INFO_32      4       /* basic information */
-#define TASK_BASIC2_INFO_32      6
-
-struct task_basic_info_32 {
-	integer_t       suspend_count;  /* suspend count for task */
-	natural_t       virtual_size;   /* virtual memory size (bytes) */
-	natural_t       resident_size;  /* resident memory size (bytes) */
-	time_value_t    user_time;      /* total user run time for
-	                                 *  terminated threads */
-	time_value_t    system_time;    /* total system run time for
-	                                 *  terminated threads */
-	policy_t        policy;         /* default policy for new threads */
-};
-typedef struct task_basic_info_32       task_basic_info_32_data_t;
-typedef struct task_basic_info_32       *task_basic_info_32_t;
-#define TASK_BASIC_INFO_32_COUNT   \
-	        (sizeof(task_basic_info_32_data_t) / sizeof(natural_t))
-
-/* Don't use this, use MACH_TASK_BASIC_INFO instead */
-struct task_basic_info_64 {
-	integer_t       suspend_count;  /* suspend count for task */
-	mach_vm_size_t  virtual_size;   /* virtual memory size (bytes) */
-	mach_vm_size_t  resident_size;  /* resident memory size (bytes) */
-	time_value_t    user_time;      /* total user run time for
-	                                 *  terminated threads */
-	time_value_t    system_time;    /* total system run time for
-	                                 *  terminated threads */
-	policy_t        policy;         /* default policy for new threads */
-};
-typedef struct task_basic_info_64       task_basic_info_64_data_t;
-typedef struct task_basic_info_64       *task_basic_info_64_t;
-
-#define TASK_BASIC_INFO_64      5       /* 64-bit capable basic info */
-#define TASK_BASIC_INFO_64_COUNT   \
-	        (sizeof(task_basic_info_64_data_t) / sizeof(natural_t))
-
-
-/* localized structure - cannot be safely passed between tasks of differing sizes */
-/* Don't use this, use MACH_TASK_BASIC_INFO instead */
-struct task_basic_info {
-	integer_t       suspend_count;  /* suspend count for task */
-	vm_size_t       virtual_size;   /* virtual memory size (bytes) */
-	vm_size_t       resident_size;  /* resident memory size (bytes) */
-	time_value_t    user_time;      /* total user run time for
-	                                 *  terminated threads */
-	time_value_t    system_time;    /* total system run time for
-	                                 *  terminated threads */
-	policy_t        policy;         /* default policy for new threads */
-};
-
-typedef struct task_basic_info          task_basic_info_data_t;
-typedef struct task_basic_info          *task_basic_info_t;
-#define TASK_BASIC_INFO_COUNT   \
-	        (sizeof(task_basic_info_data_t) / sizeof(natural_t))
-#if !defined(__LP64__)
-#define TASK_BASIC_INFO TASK_BASIC_INFO_32
-#else
-#define TASK_BASIC_INFO TASK_BASIC_INFO_64
-#endif
-
-
-
-#define TASK_EVENTS_INFO        2       /* various event counts */
-
-struct task_events_info {
-	integer_t       faults;         /* number of page faults */
-	integer_t       pageins;        /* number of actual pageins */
-	integer_t       cow_faults;     /* number of copy-on-write faults */
-	integer_t       messages_sent;  /* number of messages sent */
-	integer_t       messages_received; /* number of messages received */
-	integer_t       syscalls_mach;  /* number of mach system calls */
-	integer_t       syscalls_unix;  /* number of unix system calls */
-	integer_t       csw;            /* number of context switches */
-};
-typedef struct task_events_info         task_events_info_data_t;
-typedef struct task_events_info         *task_events_info_t;
-#define TASK_EVENTS_INFO_COUNT          ((mach_msg_type_number_t) \
-	        (sizeof(task_events_info_data_t) / sizeof(natural_t)))
-
-#define TASK_THREAD_TIMES_INFO  3       /* total times for live threads -
-	                                 *  only accurate if suspended */
-
-struct task_thread_times_info {
-	time_value_t    user_time;      /* total user run time for
-	                                 *  live threads */
-	time_value_t    system_time;    /* total system run time for
-	                                 *  live threads */
-};
-
-typedef struct task_thread_times_info   task_thread_times_info_data_t;
-typedef struct task_thread_times_info   *task_thread_times_info_t;
-#define TASK_THREAD_TIMES_INFO_COUNT    ((mach_msg_type_number_t) \
-	        (sizeof(task_thread_times_info_data_t) / sizeof(natural_t)))
-
-#define TASK_ABSOLUTETIME_INFO  1
-
-struct task_absolutetime_info {
-	uint64_t                total_user;
-	uint64_t                total_system;
-	uint64_t                threads_user;   /* existing threads only */
-	uint64_t                threads_system;
-};
-
-typedef struct task_absolutetime_info   task_absolutetime_info_data_t;
-typedef struct task_absolutetime_info   *task_absolutetime_info_t;
-#define TASK_ABSOLUTETIME_INFO_COUNT    ((mach_msg_type_number_t) \
-	        (sizeof (task_absolutetime_info_data_t) / sizeof (natural_t)))
-
-#define TASK_KERNELMEMORY_INFO  7
-
-struct task_kernelmemory_info {
-	uint64_t                total_palloc;   /* private kernel mem alloc'ed */
-	uint64_t                total_pfree;    /* private kernel mem freed */
-	uint64_t                total_salloc;   /* shared kernel mem alloc'ed */
-	uint64_t                total_sfree;    /* shared kernel mem freed */
-};
-
-typedef struct task_kernelmemory_info   task_kernelmemory_info_data_t;
-typedef struct task_kernelmemory_info   *task_kernelmemory_info_t;
-#define TASK_KERNELMEMORY_INFO_COUNT    ((mach_msg_type_number_t) \
-	        (sizeof (task_kernelmemory_info_data_t) / sizeof (natural_t)))
-
-#define TASK_SECURITY_TOKEN             13
-#define TASK_SECURITY_TOKEN_COUNT       ((mach_msg_type_number_t) \
-	        (sizeof(security_token_t) / sizeof(natural_t)))
-
-#define TASK_AUDIT_TOKEN                15
-#define TASK_AUDIT_TOKEN_COUNT  \
-	        (sizeof(audit_token_t) / sizeof(natural_t))
-
-
-#define TASK_AFFINITY_TAG_INFO          16      /* This is experimental. */
-
-struct task_affinity_tag_info {
-	integer_t               set_count;
-	integer_t               min;
-	integer_t               max;
-	integer_t               task_count;
-};
-typedef struct task_affinity_tag_info   task_affinity_tag_info_data_t;
-typedef struct task_affinity_tag_info   *task_affinity_tag_info_t;
-#define TASK_AFFINITY_TAG_INFO_COUNT    \
-	        (sizeof(task_affinity_tag_info_data_t) / sizeof(natural_t))
-
-#define TASK_DYLD_INFO                  17
-
-struct task_dyld_info {
-	mach_vm_address_t       all_image_info_addr;
-	mach_vm_size_t          all_image_info_size;
-	integer_t               all_image_info_format;
-};
-typedef struct task_dyld_info   task_dyld_info_data_t;
-typedef struct task_dyld_info   *task_dyld_info_t;
-#define TASK_DYLD_INFO_COUNT    \
-	        (sizeof(task_dyld_info_data_t) / sizeof(natural_t))
-#define TASK_DYLD_ALL_IMAGE_INFO_32     0       /* format value */
-#define TASK_DYLD_ALL_IMAGE_INFO_64     1       /* format value */
-
-
-#define TASK_EXTMOD_INFO                        19
-
-struct task_extmod_info {
-	unsigned char   task_uuid[16];
-	vm_extmod_statistics_data_t             extmod_statistics;
-};
-typedef struct task_extmod_info task_extmod_info_data_t;
-typedef struct task_extmod_info *task_extmod_info_t;
-#define TASK_EXTMOD_INFO_COUNT  \
-	        (sizeof(task_extmod_info_data_t) / sizeof(natural_t))
-
-
-#define MACH_TASK_BASIC_INFO     20         /* always 64-bit basic info */
-struct mach_task_basic_info {
-	mach_vm_size_t  virtual_size;       /* virtual memory size (bytes) */
-	mach_vm_size_t  resident_size;      /* resident memory size (bytes) */
-	mach_vm_size_t  resident_size_max;  /* maximum resident memory size (bytes) */
-	time_value_t    user_time;          /* total user run time for
-	                                     *  terminated threads */
-	time_value_t    system_time;        /* total system run time for
-	                                     *  terminated threads */
-	policy_t        policy;             /* default policy for new threads */
-	integer_t       suspend_count;      /* suspend count for task */
-};
-typedef struct mach_task_basic_info       mach_task_basic_info_data_t;
-typedef struct mach_task_basic_info       *mach_task_basic_info_t;
-#define MACH_TASK_BASIC_INFO_COUNT   \
-	        (sizeof(mach_task_basic_info_data_t) / sizeof(natural_t))
-
-
-#define TASK_POWER_INFO 21
-
-struct task_power_info {
-	uint64_t                total_user;
-	uint64_t                total_system;
-	uint64_t                task_interrupt_wakeups;
-	uint64_t                task_platform_idle_wakeups;
-	uint64_t                task_timer_wakeups_bin_1;
-	uint64_t                task_timer_wakeups_bin_2;
-};
-
-typedef struct task_power_info  task_power_info_data_t;
-typedef struct task_power_info  *task_power_info_t;
-#define TASK_POWER_INFO_COUNT   ((mach_msg_type_number_t) \
-	        (sizeof (task_power_info_data_t) / sizeof (natural_t)))
-
-
-
-#define TASK_VM_INFO            22
-#define TASK_VM_INFO_PURGEABLE  23
-struct task_vm_info {
-	mach_vm_size_t  virtual_size;       /* virtual memory size (bytes) */
-	integer_t       region_count;       /* number of memory regions */
-	integer_t       page_size;
-	mach_vm_size_t  resident_size;      /* resident memory size (bytes) */
-	mach_vm_size_t  resident_size_peak; /* peak resident size (bytes) */
-
-	mach_vm_size_t  device;
-	mach_vm_size_t  device_peak;
-	mach_vm_size_t  internal;
-	mach_vm_size_t  internal_peak;
-	mach_vm_size_t  external;
-	mach_vm_size_t  external_peak;
-	mach_vm_size_t  reusable;
-	mach_vm_size_t  reusable_peak;
-	mach_vm_size_t  purgeable_volatile_pmap;
-	mach_vm_size_t  purgeable_volatile_resident;
-	mach_vm_size_t  purgeable_volatile_virtual;
-	mach_vm_size_t  compressed;
-	mach_vm_size_t  compressed_peak;
-	mach_vm_size_t  compressed_lifetime;
-
-	/* added for rev1 */
-	mach_vm_size_t  phys_footprint;
-
-	/* added for rev2 */
-	mach_vm_address_t       min_address;
-	mach_vm_address_t       max_address;
-
-	/* added for rev3 */
-	int64_t ledger_phys_footprint_peak;
-	int64_t ledger_purgeable_nonvolatile;
-	int64_t ledger_purgeable_novolatile_compressed;
-	int64_t ledger_purgeable_volatile;
-	int64_t ledger_purgeable_volatile_compressed;
-	int64_t ledger_tag_network_nonvolatile;
-	int64_t ledger_tag_network_nonvolatile_compressed;
-	int64_t ledger_tag_network_volatile;
-	int64_t ledger_tag_network_volatile_compressed;
-	int64_t ledger_tag_media_footprint;
-	int64_t ledger_tag_media_footprint_compressed;
-	int64_t ledger_tag_media_nofootprint;
-	int64_t ledger_tag_media_nofootprint_compressed;
-	int64_t ledger_tag_graphics_footprint;
-	int64_t ledger_tag_graphics_footprint_compressed;
-	int64_t ledger_tag_graphics_nofootprint;
-	int64_t ledger_tag_graphics_nofootprint_compressed;
-	int64_t ledger_tag_neural_footprint;
-	int64_t ledger_tag_neural_footprint_compressed;
-	int64_t ledger_tag_neural_nofootprint;
-	int64_t ledger_tag_neural_nofootprint_compressed;
-
-	/* added for rev4 */
-	uint64_t limit_bytes_remaining;
-
-	/* added for rev5 */
-	integer_t decompressions;
-};
-typedef struct task_vm_info     task_vm_info_data_t;
-typedef struct task_vm_info     *task_vm_info_t;
-#define TASK_VM_INFO_COUNT      ((mach_msg_type_number_t) \
-	        (sizeof (task_vm_info_data_t) / sizeof (natural_t)))
-#define TASK_VM_INFO_REV5_COUNT TASK_VM_INFO_COUNT
-#define TASK_VM_INFO_REV4_COUNT /* doesn't include decompressions */ \
-	((mach_msg_type_number_t) (TASK_VM_INFO_REV5_COUNT - 1))
-#define TASK_VM_INFO_REV3_COUNT /* doesn't include limit bytes */ \
-	((mach_msg_type_number_t) (TASK_VM_INFO_REV4_COUNT - 2))
-#define TASK_VM_INFO_REV2_COUNT /* doesn't include extra ledgers info */ \
-	((mach_msg_type_number_t) (TASK_VM_INFO_REV3_COUNT - 42))
-#define TASK_VM_INFO_REV1_COUNT /* doesn't include min and max address */ \
-	((mach_msg_type_number_t) (TASK_VM_INFO_REV2_COUNT - 4))
-#define TASK_VM_INFO_REV0_COUNT /* doesn't include phys_footprint */ \
-	((mach_msg_type_number_t) (TASK_VM_INFO_REV1_COUNT - 2))
-
-typedef struct vm_purgeable_info        task_purgable_info_t;
-
-
-#define TASK_TRACE_MEMORY_INFO  24
-struct task_trace_memory_info {
-	uint64_t  user_memory_address;  /* address of start of trace memory buffer */
-	uint64_t  buffer_size;                  /* size of buffer in bytes */
-	uint64_t  mailbox_array_size;   /* size of mailbox area in bytes */
-};
-typedef struct task_trace_memory_info task_trace_memory_info_data_t;
-typedef struct task_trace_memory_info * task_trace_memory_info_t;
-#define TASK_TRACE_MEMORY_INFO_COUNT  ((mach_msg_type_number_t) \
-	        (sizeof(task_trace_memory_info_data_t) / sizeof(natural_t)))
-
-#define TASK_WAIT_STATE_INFO  25    /* deprecated. */
-struct task_wait_state_info {
-	uint64_t  total_wait_state_time;        /* Time that all threads past and present have been in a wait state */
-	uint64_t  total_wait_sfi_state_time;    /* Time that threads have been in SFI wait (should be a subset of total wait state time */
-	uint32_t  _reserved[4];
-};
-typedef struct task_wait_state_info task_wait_state_info_data_t;
-typedef struct task_wait_state_info * task_wait_state_info_t;
-#define TASK_WAIT_STATE_INFO_COUNT  ((mach_msg_type_number_t) \
-	        (sizeof(task_wait_state_info_data_t) / sizeof(natural_t)))
-
-#define TASK_POWER_INFO_V2      26
-
-typedef struct {
-	uint64_t                task_gpu_utilisation;
-	uint64_t                task_gpu_stat_reserved0;
-	uint64_t                task_gpu_stat_reserved1;
-	uint64_t                task_gpu_stat_reserved2;
-} gpu_energy_data;
-
-typedef gpu_energy_data *gpu_energy_data_t;
-struct task_power_info_v2 {
-	task_power_info_data_t  cpu_energy;
-	gpu_energy_data gpu_energy;
-	uint64_t                task_ptime;
-	uint64_t                task_pset_switches;
-};
-
-typedef struct task_power_info_v2       task_power_info_v2_data_t;
-typedef struct task_power_info_v2       *task_power_info_v2_t;
-#define TASK_POWER_INFO_V2_COUNT_OLD    \
-	        ((mach_msg_type_number_t) (sizeof (task_power_info_v2_data_t) - sizeof(uint64_t)*2) / sizeof (natural_t))
-#define TASK_POWER_INFO_V2_COUNT        \
-	        ((mach_msg_type_number_t) (sizeof (task_power_info_v2_data_t) / sizeof (natural_t)))
-
-#define TASK_VM_INFO_PURGEABLE_ACCOUNT 27 /* Used for xnu purgeable vm unit tests */
-
-
-#define TASK_FLAGS_INFO  28                     /* return t_flags field */
-struct task_flags_info {
-	uint32_t        flags;                          /* task flags */
-};
-typedef struct task_flags_info task_flags_info_data_t;
-typedef struct task_flags_info * task_flags_info_t;
-#define TASK_FLAGS_INFO_COUNT  ((mach_msg_type_number_t) \
-	        (sizeof(task_flags_info_data_t) / sizeof (natural_t)))
-
-#define TF_LP64         0x00000001 /* task has 64-bit addressing */
-#define TF_64B_DATA     0x00000002 /* task has 64-bit data registers */
-
-#define TASK_DEBUG_INFO_INTERNAL    29 /* Used for kernel internal development tests. */
-
-
-/*
- * Type to control EXC_GUARD delivery options for a task
- * via task_get/set_exc_guard_behavior interface(s).
- */
-typedef uint32_t task_exc_guard_behavior_t;
-
-/* EXC_GUARD optional delivery settings on a per-task basis */
-#define TASK_EXC_GUARD_VM_DELIVER            0x01 /* Deliver virtual memory EXC_GUARD exceptions */
-#define TASK_EXC_GUARD_VM_ONCE               0x02 /* Deliver them only once */
-#define TASK_EXC_GUARD_VM_CORPSE             0x04 /* Deliver them via a forked corpse */
-#define TASK_EXC_GUARD_VM_FATAL              0x08 /* Virtual Memory EXC_GUARD delivery is fatal */
-#define TASK_EXC_GUARD_VM_ALL                0x0f
-
-#define TASK_EXC_GUARD_MP_DELIVER            0x10 /* Deliver mach port EXC_GUARD exceptions */
-#define TASK_EXC_GUARD_MP_ONCE               0x20 /* Deliver them only once */
-#define TASK_EXC_GUARD_MP_CORPSE             0x40 /* Deliver them via a forked corpse */
-#define TASK_EXC_GUARD_MP_FATAL              0x80 /* mach port EXC_GUARD delivery is fatal */
-#define TASK_EXC_GUARD_MP_ALL                0xf0
-
-#define TASK_EXC_GUARD_ALL                   0xff /* All optional deliver settings */
-
-
-/*
- * Obsolete interfaces.
- */
-
-#define TASK_SCHED_TIMESHARE_INFO       10
-#define TASK_SCHED_RR_INFO              11
-#define TASK_SCHED_FIFO_INFO            12
-
-#define TASK_SCHED_INFO                 14
-
-#pragma pack(pop)
-
-#endif  /* _MACH_TASK_INFO_H_ */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/task_inspect.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/task_inspect.h
deleted file mode 100644
index b13310f7..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/task_inspect.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright (c) 2017 Apple Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-
-#ifndef MACH_TASK_INSPECT_H
-#define MACH_TASK_INSPECT_H
-
-/*
- * XXX These interfaces are still in development -- they are subject to change
- * without notice.
- */
-
-typedef natural_t task_inspect_flavor_t;
-
-enum task_inspect_flavor {
-	TASK_INSPECT_BASIC_COUNTS = 1,
-};
-
-struct task_inspect_basic_counts {
-	uint64_t instructions;
-	uint64_t cycles;
-};
-#define TASK_INSPECT_BASIC_COUNTS_COUNT \
-	(sizeof(struct task_inspect_basic_counts) / sizeof(natural_t))
-typedef struct task_inspect_basic_counts task_inspect_basic_counts_data_t;
-typedef struct task_inspect_basic_counts *task_inspect_basic_counts_t;
-
-typedef integer_t *task_inspect_info_t;
-
-#endif /* !defined(MACH_TASK_INSPECT_H) */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/task_policy.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/task_policy.h
deleted file mode 100644
index 04970a5b..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/task_policy.h
+++ /dev/null
@@ -1,189 +0,0 @@
-/*
- * Copyright (c) 2000-2005 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-
-#ifndef _MACH_TASK_POLICY_H_
-#define _MACH_TASK_POLICY_H_
-
-#include <mach/mach_types.h>
-
-/*
- * These are the calls for accessing the policy parameters
- * of a particular task.
- *
- * The extra 'get_default' parameter to the second call is
- * IN/OUT as follows:
- * 1) if asserted on the way in it indicates that the default
- * values should be returned, not the ones currently set, in
- * this case 'get_default' will always be asserted on return;
- * 2) if unasserted on the way in, the current settings are
- * desired and if still unasserted on return, then the info
- * returned reflects the current settings, otherwise if
- * 'get_default' returns asserted, it means that there are no
- * current settings due to other parameters taking precedence,
- * and the default ones are being returned instead.
- */
-
-typedef natural_t       task_policy_flavor_t;
-typedef integer_t       *task_policy_t;
-
-/*
- *  kern_return_t	task_policy_set(
- *                                       task_t					task,
- *                                       task_policy_flavor_t	flavor,
- *                                       task_policy_t			policy_info,
- *                                       mach_msg_type_number_t	count);
- *
- *  kern_return_t	task_policy_get(
- *                                       task_t					task,
- *                                       task_policy_flavor_t	flavor,
- *                                       task_policy_t			policy_info,
- *                                       mach_msg_type_number_t	*count,
- *                                       boolean_t				*get_default);
- */
-
-/*
- * Defined flavors.
- */
-/*
- * TASK_CATEGORY_POLICY:
- *
- * This provides information to the kernel about the role
- * of the task in the system.
- *
- * Parameters:
- *
- * role: Enumerated as follows:
- *
- * TASK_UNSPECIFIED is the default, since the role is not
- * inherited from the parent.
- *
- * TASK_FOREGROUND_APPLICATION should be assigned when the
- * task is a normal UI application in the foreground from
- * the HI point of view.
- * **N.B. There may be more than one of these at a given time.
- *
- * TASK_BACKGROUND_APPLICATION should be assigned when the
- * task is a normal UI application in the background from
- * the HI point of view.
- *
- * TASK_CONTROL_APPLICATION should be assigned to the unique
- * UI application which implements the pop-up application dialog.
- * There can only be one task at a time with this designation,
- * which is assigned FCFS.
- *
- * TASK_GRAPHICS_SERVER should be assigned to the graphics
- * management (window) server.  There can only be one task at
- * a time with this designation, which is assigned FCFS.
- */
-
-#define TASK_CATEGORY_POLICY            1
-
-#define TASK_SUPPRESSION_POLICY         3
-#define TASK_POLICY_STATE               4
-#define TASK_BASE_QOS_POLICY            8
-#define TASK_OVERRIDE_QOS_POLICY        9
-#define TASK_BASE_LATENCY_QOS_POLICY    10
-#define TASK_BASE_THROUGHPUT_QOS_POLICY 11
-
-
-enum task_role {
-	TASK_RENICED                    = -1,
-	TASK_UNSPECIFIED                = 0,
-	TASK_FOREGROUND_APPLICATION     = 1,
-	TASK_BACKGROUND_APPLICATION     = 2,
-	TASK_CONTROL_APPLICATION        = 3,
-	TASK_GRAPHICS_SERVER            = 4,
-	TASK_THROTTLE_APPLICATION       = 5,
-	TASK_NONUI_APPLICATION          = 6,
-	TASK_DEFAULT_APPLICATION        = 7,
-	TASK_DARWINBG_APPLICATION       = 8,
-};
-
-typedef integer_t       task_role_t;
-
-struct task_category_policy {
-	task_role_t             role;
-};
-
-typedef struct task_category_policy             task_category_policy_data_t;
-typedef struct task_category_policy             *task_category_policy_t;
-
-#define TASK_CATEGORY_POLICY_COUNT      ((mach_msg_type_number_t) \
-	(sizeof (task_category_policy_data_t) / sizeof (integer_t)))
-
-
-enum task_latency_qos {
-	LATENCY_QOS_TIER_UNSPECIFIED = 0x0,
-	LATENCY_QOS_TIER_0 = ((0xFF << 16) | 1),
-	LATENCY_QOS_TIER_1 = ((0xFF << 16) | 2),
-	LATENCY_QOS_TIER_2 = ((0xFF << 16) | 3),
-	LATENCY_QOS_TIER_3 = ((0xFF << 16) | 4),
-	LATENCY_QOS_TIER_4 = ((0xFF << 16) | 5),
-	LATENCY_QOS_TIER_5 = ((0xFF << 16) | 6)
-};
-typedef integer_t       task_latency_qos_t;
-enum task_throughput_qos {
-	THROUGHPUT_QOS_TIER_UNSPECIFIED = 0x0,
-	THROUGHPUT_QOS_TIER_0 = ((0xFE << 16) | 1),
-	THROUGHPUT_QOS_TIER_1 = ((0xFE << 16) | 2),
-	THROUGHPUT_QOS_TIER_2 = ((0xFE << 16) | 3),
-	THROUGHPUT_QOS_TIER_3 = ((0xFE << 16) | 4),
-	THROUGHPUT_QOS_TIER_4 = ((0xFE << 16) | 5),
-	THROUGHPUT_QOS_TIER_5 = ((0xFE << 16) | 6),
-};
-
-#define LATENCY_QOS_LAUNCH_DEFAULT_TIER LATENCY_QOS_TIER_3
-#define THROUGHPUT_QOS_LAUNCH_DEFAULT_TIER THROUGHPUT_QOS_TIER_3
-
-typedef integer_t       task_throughput_qos_t;
-
-struct task_qos_policy {
-	task_latency_qos_t task_latency_qos_tier;
-	task_throughput_qos_t task_throughput_qos_tier;
-};
-
-typedef struct task_qos_policy *task_qos_policy_t;
-#define TASK_QOS_POLICY_COUNT   ((mach_msg_type_number_t) \
-	(sizeof (struct task_qos_policy) / sizeof (integer_t)))
-
-/* These should be removed - they belong in proc_info.h */
-#define PROC_FLAG_DARWINBG           0x8000    /* process in darwin background */
-#define PROC_FLAG_EXT_DARWINBG           0x10000   /* process in darwin background - external enforcement */
-#define PROC_FLAG_IOS_APPLEDAEMON    0x20000   /* process is apple ios daemon */
-#define PROC_FLAG_IOS_IMPPROMOTION   0x80000   /* process is apple ios daemon */
-#define PROC_FLAG_ADAPTIVE           0x100000  /* Process is adaptive */
-#define PROC_FLAG_ADAPTIVE_IMPORTANT 0x200000  /* Process is adaptive, and is currently important */
-#define PROC_FLAG_IMPORTANCE_DONOR   0x400000  /* Process is marked as an importance donor */
-#define PROC_FLAG_SUPPRESSED         0x800000  /* Process is suppressed */
-#define PROC_FLAG_APPLICATION        0x1000000 /* Process is an application */
-#define PROC_FLAG_IOS_APPLICATION PROC_FLAG_APPLICATION /* Process is an application */
-
-
-
-
-#endif  /* _MACH_TASK_POLICY_H_ */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/task_special_ports.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/task_special_ports.h
deleted file mode 100644
index ded90941..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/task_special_ports.h
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
- * Copyright (c) 2000-2010 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-/*
- * Mach Operating System
- * Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University
- * All Rights Reserved.
- *
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- */
-/*
- */
-/*
- *	File:	mach/task_special_ports.h
- *
- *	Defines codes for special_purpose task ports.  These are NOT
- *	port identifiers - they are only used for the task_get_special_port
- *	and task_set_special_port routines.
- *
- */
-
-#ifndef _MACH_TASK_SPECIAL_PORTS_H_
-#define _MACH_TASK_SPECIAL_PORTS_H_
-
-typedef int     task_special_port_t;
-
-#define TASK_KERNEL_PORT        1       /* Represents task to the outside
-	                                 *  world.*/
-
-#define TASK_HOST_PORT          2       /* The host (priv) port for task.  */
-
-#define TASK_NAME_PORT          3       /* the name (unpriv) port for task */
-
-#define TASK_BOOTSTRAP_PORT     4       /* Bootstrap environment for task. */
-
-/*
- * Evolving and likely to change.
- */
-
-#define TASK_SEATBELT_PORT      7       /* Seatbelt compiler/DEM port for task. */
-
-/* PORT 8 was the GSSD TASK PORT which transformed to a host port */
-
-#define TASK_ACCESS_PORT        9       /* Permission check for task_for_pid. */
-
-#define TASK_DEBUG_CONTROL_PORT 10      /* debug control port */
-
-#define TASK_RESOURCE_NOTIFY_PORT   11  /* overrides host special RN port */
-
-#define TASK_MAX_SPECIAL_PORT TASK_RESOURCE_NOTIFY_PORT
-
-/*
- *	Definitions for ease of use
- */
-
-#define task_get_kernel_port(task, port)        \
-	        (task_get_special_port((task), TASK_KERNEL_PORT, (port)))
-
-#define task_set_kernel_port(task, port)        \
-	        (task_set_special_port((task), TASK_KERNEL_PORT, (port)))
-
-#define task_get_host_port(task, port)          \
-	        (task_get_special_port((task), TASK_HOST_PORT, (port)))
-
-#define task_set_host_port(task, port)  \
-	        (task_set_special_port((task), TASK_HOST_PORT, (port)))
-
-#define task_get_bootstrap_port(task, port)     \
-	        (task_get_special_port((task), TASK_BOOTSTRAP_PORT, (port)))
-
-#define task_get_debug_control_port(task, port) \
-	        (task_get_special_port((task), TASK_DEBUG_CONTROL_PORT, (port)))
-
-#define task_set_bootstrap_port(task, port)     \
-	        (task_set_special_port((task), TASK_BOOTSTRAP_PORT, (port)))
-
-#define task_get_task_access_port(task, port)   \
-	        (task_get_special_port((task), TASK_ACCESS_PORT, (port)))
-
-#define task_set_task_access_port(task, port)   \
-	        (task_set_special_port((task), TASK_ACCESS_PORT, (port)))
-
-#define task_set_task_debug_control_port(task, port) \
-	        (task_set_special_port((task), TASK_DEBUG_CONTROL_PORT, (port)))
-
-
-#endif  /* _MACH_TASK_SPECIAL_PORTS_H_ */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/telemetry_notification.defs b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/telemetry_notification.defs
deleted file mode 100644
index 4b9f8a59..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/telemetry_notification.defs
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- * Copyright (c) 2012, Apple Inc.  All rights reserved.
- */
-
- /*
- *  Interface definition for the telemetry facility.
- */
-
-subsystem
-#if	KERNEL_USER
-    KernelUser
-#endif	/* KERNEL_USER */
-    telemetry_notification 5100;
-
-#include <mach/std_types.defs>
-#include <mach/mach_types.defs>
-
-simpleroutine	telemetry_notification(
-	RequestPort	telemetry_port	: mach_port_t; 
-	in			flags			: uint32_t);
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/thread_act.defs b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/thread_act.defs
deleted file mode 100644
index 205fff54..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/thread_act.defs
+++ /dev/null
@@ -1,367 +0,0 @@
-/*
- * Copyright (c) 2000-2007 Apple Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- * 
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- * 
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- * 
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- * 
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_FREE_COPYRIGHT@
- */
-/* 
- * Mach Operating System
- * Copyright (c) 1991,1990,1989 Carnegie Mellon University
- * All Rights Reserved.
- * 
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- * 
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- * 
- * Carnegie Mellon requests users of this software to return to
- * 
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- * 
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- */
-/*
- */
-/*
- *	File:	mach/mach_port.defs
- *	Author:	Rich Draves
- *
- *	Exported kernel calls.
- */
-
-subsystem
-#if	KERNEL_SERVER
-	  KernelServer
-#endif	/* KERNEL_SERVER */
-	  thread_act 3600;
-
-#include <mach/std_types.defs>
-#include <mach/mach_types.defs>
-
-#if !KERNEL && !LIBSYSCALL_INTERFACE
-#define PREFIX(NAME) _kernelrpc_ ## NAME
-#else
-#define PREFIX(NAME) NAME
-#endif
-
-/*
- *	Destroy the target thread.
- *
- *	JMM - For legacy reasons this consumes a reference to the
- *	target thread.  This will have to change in the future because
- *	we want the interfaces to be able to be defined in more standard
- *	IDLs and transports, and most of them do not support the notion
- *	of reference ownership transfers (just sharing).
- */
-routine thread_terminate(
-		target_act	: thread_act_consume_ref_t); 
-
-
-/*
- *	Return the selected state information for the target
- *	thr_act.  If the thr_act is currently executing, the results
- *	may be stale.  [Flavor THREAD_STATE_FLAVOR_LIST provides a
- *	list of valid flavors for the target thread.]
- */
-routine
-#ifdef KERNEL_SERVER
-act_get_state_to_user(
-#else
-act_get_state(
-#endif
-		target_act	: thread_act_t;
-		flavor		: int;
-	out	old_state	: thread_state_t, CountInOut);
-
-/*
- *	Set the selected state information for the target thread.
- *	If the thread is currently executing, the state change
- *	may be ill-defined.
- */
-routine
-#ifdef KERNEL_SERVER
-act_set_state_from_user(
-#else
-act_set_state(
-#endif
-		target_act	: thread_act_t;
-		flavor		: int;
-		new_state	: thread_state_t);
-
-/*
- * Backward compatible old-style thread routines.
- * These have different semantics than the new activation versions.
- *
- *	Return the selected state information for the target
- *	thread.  If the thread is currently executing, the results
- *	may be stale.  [Flavor THREAD_STATE_FLAVOR_LIST provides a
- *	list of valid flavors for the target thr_act.]
- */
-routine
-#ifdef KERNEL_SERVER
-thread_get_state_to_user(
-#else
-thread_get_state(
-#endif
-		target_act	: thread_act_t;
-		flavor		: thread_state_flavor_t;
-	out	old_state	: thread_state_t, CountInOut);
-
-/*
- *	Set the selected state information for the target thread.
- *	If the thread is currently executing, the state change
- *	may be ill-defined.
- */
-routine
-#ifdef KERNEL_SERVER
-thread_set_state_from_user(
-#else
-thread_set_state(
-#endif
-		target_act	: thread_act_t;
-		flavor		: thread_state_flavor_t;
-		new_state	: thread_state_t);
-
-/*
- *	Increment the suspend count for the target thread.
- *	Once this call has completed, the thread will not
- *	execute any further user or meta- instructions.
- *	Once suspended, a thread may not execute again until
- *	its suspend count is zero, and the suspend count
- *	for its task is also zero.
- */
-routine	thread_suspend(
-		target_act	: thread_act_t);
-
-/*
- *	Decrement the suspend count for the target thread,
- *	if that count is not already zero.
- */
-routine	thread_resume(
-		target_act	: thread_act_t);
-
-/*
- *	Cause any user or meta- instructions currently being
- *	executed by the target thread to be aborted.  [Meta-
- *	instructions consist of the basic traps for IPC
- *	(e.g., msg_send, msg_receive) and self-identification
- *	(e.g., task_self, thread_self, thread_reply).  Calls
- *	described by MiG interfaces are not meta-instructions
- *	themselves.]
- */
-routine thread_abort(
-		target_act	: thread_act_t);
-
-/*
- *	Cause any user or meta- instructions currently being
- *	executed by the target thread to be aborted so that
- *	they are transparently restartable.  This call fails
- *	if the abort would result in a non-restartable condition.
- *	Retry is the caller's responsibility.  [Meta-
- *	instructions consist of the basic traps for IPC
- *	(e.g., msg_send, msg_receive) and self-identification
- *	(e.g., task_self, thread_self, thread_reply).  Calls
- *	described by MiG interfaces are not meta-instructions
- *	themselves.]
- */
-routine thread_abort_safely(
-		target_act	: thread_act_t);
-
-
-routine
-#ifdef KERNEL_SERVER
-thread_depress_abort_from_user(
-#else
-thread_depress_abort(
-#endif
-		thread		: thread_act_t);
-
-
-/*
- *	Returns the current value of the selected special port
- *	associated with the target thread.
- */
-routine thread_get_special_port(
-		thr_act		: thread_act_t;
-		which_port	: int;
-	out	special_port	: mach_port_t);
-
-/*
- *	Set one of the special ports associated with the
- *	target thread.
- */
-routine thread_set_special_port(
-		thr_act		: thread_act_t;
-		which_port	: int;
-		special_port	: mach_port_t);
-
-/*
- *      Returns information about the target thread.
- */
-routine thread_info(
-                target_act      : thread_inspect_t;
-                flavor          : thread_flavor_t;
-        out     thread_info_out : thread_info_t, CountInOut);
-
-/*
- * Set an exception handler for a thread on one or more exception types
- */
-routine		thread_set_exception_ports(
-			thread		: thread_act_t;
-			exception_mask	: exception_mask_t;
-			new_port	: mach_port_t;
-			behavior	: exception_behavior_t;
-			new_flavor	: thread_state_flavor_t);
-
-/*
- * Lookup some of the old exception handlers for a thread
- */
-routine		thread_get_exception_ports(
-			thread		: thread_inspect_t;
-			exception_mask	: exception_mask_t;
-		  out	masks		: exception_mask_array_t;
-		  out	old_handlers	: exception_handler_array_t, SameCount;
-		  out	old_behaviors	: exception_behavior_array_t, SameCount;
-		  out	old_flavors	: exception_flavor_array_t, SameCount);
-
-/*
- * Set an exception handler for a thread on one or more exception types.
- * At the same time, return the previously defined exception handlers for
- * those types.
- */
-routine		thread_swap_exception_ports(
-			thread		: thread_act_t;
-			exception_mask	: exception_mask_t;
-			new_port	: mach_port_t;
-			behavior	: exception_behavior_t;
-			new_flavor	: thread_state_flavor_t;
-		  out	masks		: exception_mask_array_t;
-		  out	old_handlers	: exception_handler_array_t, SameCount;
-		  out	old_behaviors	: exception_behavior_array_t, SameCount;
-		  out	old_flavors	: exception_flavor_array_t, SameCount);
-
-/*
- * OBSOLETE interface.
- */
-routine PREFIX(thread_policy)(
-	thr_act			: thread_act_t;
-	policy			: policy_t;
-	base			: policy_base_t;
-	set_limit		: boolean_t);
-
-/*
- * Set/get policy information for a thread.
- * (Approved Mac OS X microkernel interface)
- */
-
-routine PREFIX(thread_policy_set)(
-	thread			: thread_act_t;
-	flavor			: thread_policy_flavor_t;
-	policy_info		: thread_policy_t);
-
-routine thread_policy_get(
-	thread			: thread_inspect_t;
-	flavor			: thread_policy_flavor_t;
-out	policy_info		: thread_policy_t, CountInOut;
-inout	get_default		: boolean_t);
-
-/*
- *	Removed from the kernel.
- */
-#if KERNEL_SERVER
-skip;
-#else
-routine thread_sample(
-		thread		: thread_act_t;
-		reply		: mach_port_make_send_t);
-#endif
-
-/*
- *	ETAP has been removed from the kernel.
- */
-#if KERNEL_SERVER
-skip;
-#else
-routine	etap_trace_thread(
-		target_act	: thread_act_t;
-		trace_status	: boolean_t);
-#endif
-
-/*
- *	Assign thread to processor set.
- */
-routine	thread_assign(
-		thread		: thread_act_t;
-		new_set		: processor_set_t);
-
-/*
- *	Assign thread to default set.
- */
-routine thread_assign_default(
-		thread		: thread_act_t);
-
-/*
- *	Get current assignment for thread.
- */
-routine thread_get_assignment(
-		thread		: thread_act_t;
-	out	assigned_set	: processor_set_name_t);
-
-/*
- * OBSOLETE interface.
- */
-routine PREFIX(thread_set_policy)(
-		thr_act		: thread_act_t;
-		pset		: processor_set_t;
-		policy		: policy_t;
-		base		: policy_base_t;
-		limit		: policy_limit_t);
-
-routine thread_get_mach_voucher(
-		thr_act		: thread_act_t;
-		which		: mach_voucher_selector_t;
-	out	voucher		: ipc_voucher_t);
-
-routine thread_set_mach_voucher(
-		thr_act		: thread_act_t;
-		voucher		: ipc_voucher_t);
-	
-routine thread_swap_mach_voucher(
-		thr_act		: thread_act_t;
-		new_voucher	: ipc_voucher_t;
-	inout	old_voucher	: ipc_voucher_t);
-
-/* vim: set ft=c : */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/thread_act.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/thread_act.h
deleted file mode 100644
index 5a21aa7e..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/thread_act.h
+++ /dev/null
@@ -1,1336 +0,0 @@
-#ifndef	_thread_act_user_
-#define	_thread_act_user_
-
-/* Module thread_act */
-
-#include <string.h>
-#include <mach/ndr.h>
-#include <mach/boolean.h>
-#include <mach/kern_return.h>
-#include <mach/notify.h>
-#include <mach/mach_types.h>
-#include <mach/message.h>
-#include <mach/mig_errors.h>
-#include <mach/port.h>
-	
-/* BEGIN MIG_STRNCPY_ZEROFILL CODE */
-
-#if defined(__has_include)
-#if __has_include(<mach/mig_strncpy_zerofill_support.h>)
-#ifndef USING_MIG_STRNCPY_ZEROFILL
-#define USING_MIG_STRNCPY_ZEROFILL
-#endif
-#ifndef __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
-#define __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
-#ifdef __cplusplus
-extern "C" {
-#endif
-	extern int mig_strncpy_zerofill(char *dest, const char *src, int len) __attribute__((weak_import));
-#ifdef __cplusplus
-}
-#endif
-#endif /* __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__ */
-#endif /* __has_include(<mach/mig_strncpy_zerofill_support.h>) */
-#endif /* __has_include */
-	
-/* END MIG_STRNCPY_ZEROFILL CODE */
-
-
-#ifdef AUTOTEST
-#ifndef FUNCTION_PTR_T
-#define FUNCTION_PTR_T
-typedef void (*function_ptr_t)(mach_port_t, char *, mach_msg_type_number_t);
-typedef struct {
-        char            *name;
-        function_ptr_t  function;
-} function_table_entry;
-typedef function_table_entry   *function_table_t;
-#endif /* FUNCTION_PTR_T */
-#endif /* AUTOTEST */
-
-#ifndef	thread_act_MSG_COUNT
-#define	thread_act_MSG_COUNT	28
-#endif	/* thread_act_MSG_COUNT */
-
-#include <mach/std_types.h>
-#include <mach/mig.h>
-#include <mach/mig.h>
-#include <mach/mach_types.h>
-
-#ifdef __BeforeMigUserHeader
-__BeforeMigUserHeader
-#endif /* __BeforeMigUserHeader */
-
-#include <sys/cdefs.h>
-__BEGIN_DECLS
-
-
-/* Routine thread_terminate */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
-kern_return_t thread_terminate
-(
-	thread_act_t target_act
-);
-
-/* Routine act_get_state */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
-kern_return_t act_get_state
-(
-	thread_act_t target_act,
-	int flavor,
-	thread_state_t old_state,
-	mach_msg_type_number_t *old_stateCnt
-);
-
-/* Routine act_set_state */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
-kern_return_t act_set_state
-(
-	thread_act_t target_act,
-	int flavor,
-	thread_state_t new_state,
-	mach_msg_type_number_t new_stateCnt
-);
-
-/* Routine thread_get_state */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-kern_return_t thread_get_state
-(
-	thread_act_t target_act,
-	thread_state_flavor_t flavor,
-	thread_state_t old_state,
-	mach_msg_type_number_t *old_stateCnt
-);
-
-/* Routine thread_set_state */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-kern_return_t thread_set_state
-(
-	thread_act_t target_act,
-	thread_state_flavor_t flavor,
-	thread_state_t new_state,
-	mach_msg_type_number_t new_stateCnt
-);
-
-/* Routine thread_suspend */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-kern_return_t thread_suspend
-(
-	thread_act_t target_act
-);
-
-/* Routine thread_resume */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-kern_return_t thread_resume
-(
-	thread_act_t target_act
-);
-
-/* Routine thread_abort */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-kern_return_t thread_abort
-(
-	thread_act_t target_act
-);
-
-/* Routine thread_abort_safely */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-kern_return_t thread_abort_safely
-(
-	thread_act_t target_act
-);
-
-/* Routine thread_depress_abort */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
-kern_return_t thread_depress_abort
-(
-	thread_act_t thread
-);
-
-/* Routine thread_get_special_port */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
-kern_return_t thread_get_special_port
-(
-	thread_act_t thr_act,
-	int which_port,
-	mach_port_t *special_port
-);
-
-/* Routine thread_set_special_port */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
-kern_return_t thread_set_special_port
-(
-	thread_act_t thr_act,
-	int which_port,
-	mach_port_t special_port
-);
-
-/* Routine thread_info */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t thread_info
-(
-	thread_inspect_t target_act,
-	thread_flavor_t flavor,
-	thread_info_t thread_info_out,
-	mach_msg_type_number_t *thread_info_outCnt
-);
-
-/* Routine thread_set_exception_ports */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
-kern_return_t thread_set_exception_ports
-(
-	thread_act_t thread,
-	exception_mask_t exception_mask,
-	mach_port_t new_port,
-	exception_behavior_t behavior,
-	thread_state_flavor_t new_flavor
-);
-
-/* Routine thread_get_exception_ports */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
-kern_return_t thread_get_exception_ports
-(
-	thread_inspect_t thread,
-	exception_mask_t exception_mask,
-	exception_mask_array_t masks,
-	mach_msg_type_number_t *masksCnt,
-	exception_handler_array_t old_handlers,
-	exception_behavior_array_t old_behaviors,
-	exception_flavor_array_t old_flavors
-);
-
-/* Routine thread_swap_exception_ports */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
-kern_return_t thread_swap_exception_ports
-(
-	thread_act_t thread,
-	exception_mask_t exception_mask,
-	mach_port_t new_port,
-	exception_behavior_t behavior,
-	thread_state_flavor_t new_flavor,
-	exception_mask_array_t masks,
-	mach_msg_type_number_t *masksCnt,
-	exception_handler_array_t old_handlers,
-	exception_behavior_array_t old_behaviors,
-	exception_flavor_array_t old_flavors
-);
-
-/* Routine thread_policy */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t thread_policy
-(
-	thread_act_t thr_act,
-	policy_t policy,
-	policy_base_t base,
-	mach_msg_type_number_t baseCnt,
-	boolean_t set_limit
-);
-
-/* Routine thread_policy_set */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t thread_policy_set
-(
-	thread_act_t thread,
-	thread_policy_flavor_t flavor,
-	thread_policy_t policy_info,
-	mach_msg_type_number_t policy_infoCnt
-);
-
-/* Routine thread_policy_get */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t thread_policy_get
-(
-	thread_inspect_t thread,
-	thread_policy_flavor_t flavor,
-	thread_policy_t policy_info,
-	mach_msg_type_number_t *policy_infoCnt,
-	boolean_t *get_default
-);
-
-/* Routine thread_sample */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t thread_sample
-(
-	thread_act_t thread,
-	mach_port_t reply
-);
-
-/* Routine etap_trace_thread */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t etap_trace_thread
-(
-	thread_act_t target_act,
-	boolean_t trace_status
-);
-
-/* Routine thread_assign */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t thread_assign
-(
-	thread_act_t thread,
-	processor_set_t new_set
-);
-
-/* Routine thread_assign_default */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t thread_assign_default
-(
-	thread_act_t thread
-);
-
-/* Routine thread_get_assignment */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t thread_get_assignment
-(
-	thread_act_t thread,
-	processor_set_name_t *assigned_set
-);
-
-/* Routine thread_set_policy */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t thread_set_policy
-(
-	thread_act_t thr_act,
-	processor_set_t pset,
-	policy_t policy,
-	policy_base_t base,
-	mach_msg_type_number_t baseCnt,
-	policy_limit_t limit,
-	mach_msg_type_number_t limitCnt
-);
-
-/* Routine thread_get_mach_voucher */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
-kern_return_t thread_get_mach_voucher
-(
-	thread_act_t thr_act,
-	mach_voucher_selector_t which,
-	ipc_voucher_t *voucher
-);
-
-/* Routine thread_set_mach_voucher */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
-kern_return_t thread_set_mach_voucher
-(
-	thread_act_t thr_act,
-	ipc_voucher_t voucher
-);
-
-/* Routine thread_swap_mach_voucher */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
-kern_return_t thread_swap_mach_voucher
-(
-	thread_act_t thr_act,
-	ipc_voucher_t new_voucher,
-	ipc_voucher_t *old_voucher
-);
-
-__END_DECLS
-
-/********************** Caution **************************/
-/* The following data types should be used to calculate  */
-/* maximum message sizes only. The actual message may be */
-/* smaller, and the position of the arguments within the */
-/* message layout may vary from what is presented here.  */
-/* For example, if any of the arguments are variable-    */
-/* sized, and less than the maximum is sent, the data    */
-/* will be packed tight in the actual message to reduce  */
-/* the presence of holes.                                */
-/********************** Caution **************************/
-
-/* typedefs for all requests */
-
-#ifndef __Request__thread_act_subsystem__defined
-#define __Request__thread_act_subsystem__defined
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__thread_terminate_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		int flavor;
-		mach_msg_type_number_t old_stateCnt;
-	} __Request__act_get_state_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		int flavor;
-		mach_msg_type_number_t new_stateCnt;
-		natural_t new_state[614];
-	} __Request__act_set_state_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		thread_state_flavor_t flavor;
-		mach_msg_type_number_t old_stateCnt;
-	} __Request__thread_get_state_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		thread_state_flavor_t flavor;
-		mach_msg_type_number_t new_stateCnt;
-		natural_t new_state[614];
-	} __Request__thread_set_state_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__thread_suspend_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__thread_resume_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__thread_abort_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__thread_abort_safely_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__thread_depress_abort_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		int which_port;
-	} __Request__thread_get_special_port_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t special_port;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		int which_port;
-	} __Request__thread_set_special_port_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		thread_flavor_t flavor;
-		mach_msg_type_number_t thread_info_outCnt;
-	} __Request__thread_info_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t new_port;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		exception_mask_t exception_mask;
-		exception_behavior_t behavior;
-		thread_state_flavor_t new_flavor;
-	} __Request__thread_set_exception_ports_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		exception_mask_t exception_mask;
-	} __Request__thread_get_exception_ports_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t new_port;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		exception_mask_t exception_mask;
-		exception_behavior_t behavior;
-		thread_state_flavor_t new_flavor;
-	} __Request__thread_swap_exception_ports_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		policy_t policy;
-		mach_msg_type_number_t baseCnt;
-		integer_t base[5];
-		boolean_t set_limit;
-	} __Request__thread_policy_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		thread_policy_flavor_t flavor;
-		mach_msg_type_number_t policy_infoCnt;
-		integer_t policy_info[16];
-	} __Request__thread_policy_set_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		thread_policy_flavor_t flavor;
-		mach_msg_type_number_t policy_infoCnt;
-		boolean_t get_default;
-	} __Request__thread_policy_get_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t reply;
-		/* end of the kernel processed data */
-	} __Request__thread_sample_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		boolean_t trace_status;
-	} __Request__etap_trace_thread_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t new_set;
-		/* end of the kernel processed data */
-	} __Request__thread_assign_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__thread_assign_default_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__thread_get_assignment_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t pset;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		policy_t policy;
-		mach_msg_type_number_t baseCnt;
-		integer_t base[5];
-		mach_msg_type_number_t limitCnt;
-		integer_t limit[1];
-	} __Request__thread_set_policy_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		mach_voucher_selector_t which;
-	} __Request__thread_get_mach_voucher_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t voucher;
-		/* end of the kernel processed data */
-	} __Request__thread_set_mach_voucher_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t new_voucher;
-		mach_msg_port_descriptor_t old_voucher;
-		/* end of the kernel processed data */
-	} __Request__thread_swap_mach_voucher_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-#endif /* !__Request__thread_act_subsystem__defined */
-
-/* union of all requests */
-
-#ifndef __RequestUnion__thread_act_subsystem__defined
-#define __RequestUnion__thread_act_subsystem__defined
-union __RequestUnion__thread_act_subsystem {
-	__Request__thread_terminate_t Request_thread_terminate;
-	__Request__act_get_state_t Request_act_get_state;
-	__Request__act_set_state_t Request_act_set_state;
-	__Request__thread_get_state_t Request_thread_get_state;
-	__Request__thread_set_state_t Request_thread_set_state;
-	__Request__thread_suspend_t Request_thread_suspend;
-	__Request__thread_resume_t Request_thread_resume;
-	__Request__thread_abort_t Request_thread_abort;
-	__Request__thread_abort_safely_t Request_thread_abort_safely;
-	__Request__thread_depress_abort_t Request_thread_depress_abort;
-	__Request__thread_get_special_port_t Request_thread_get_special_port;
-	__Request__thread_set_special_port_t Request_thread_set_special_port;
-	__Request__thread_info_t Request_thread_info;
-	__Request__thread_set_exception_ports_t Request_thread_set_exception_ports;
-	__Request__thread_get_exception_ports_t Request_thread_get_exception_ports;
-	__Request__thread_swap_exception_ports_t Request_thread_swap_exception_ports;
-	__Request__thread_policy_t Request_thread_policy;
-	__Request__thread_policy_set_t Request_thread_policy_set;
-	__Request__thread_policy_get_t Request_thread_policy_get;
-	__Request__thread_sample_t Request_thread_sample;
-	__Request__etap_trace_thread_t Request_etap_trace_thread;
-	__Request__thread_assign_t Request_thread_assign;
-	__Request__thread_assign_default_t Request_thread_assign_default;
-	__Request__thread_get_assignment_t Request_thread_get_assignment;
-	__Request__thread_set_policy_t Request_thread_set_policy;
-	__Request__thread_get_mach_voucher_t Request_thread_get_mach_voucher;
-	__Request__thread_set_mach_voucher_t Request_thread_set_mach_voucher;
-	__Request__thread_swap_mach_voucher_t Request_thread_swap_mach_voucher;
-};
-#endif /* !__RequestUnion__thread_act_subsystem__defined */
-/* typedefs for all replies */
-
-#ifndef __Reply__thread_act_subsystem__defined
-#define __Reply__thread_act_subsystem__defined
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__thread_terminate_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		mach_msg_type_number_t old_stateCnt;
-		natural_t old_state[614];
-	} __Reply__act_get_state_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__act_set_state_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		mach_msg_type_number_t old_stateCnt;
-		natural_t old_state[614];
-	} __Reply__thread_get_state_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__thread_set_state_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__thread_suspend_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__thread_resume_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__thread_abort_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__thread_abort_safely_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__thread_depress_abort_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t special_port;
-		/* end of the kernel processed data */
-	} __Reply__thread_get_special_port_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__thread_set_special_port_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		mach_msg_type_number_t thread_info_outCnt;
-		integer_t thread_info_out[32];
-	} __Reply__thread_info_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__thread_set_exception_ports_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t old_handlers[32];
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		mach_msg_type_number_t masksCnt;
-		exception_mask_t masks[32];
-		exception_behavior_t old_behaviors[32];
-		thread_state_flavor_t old_flavors[32];
-	} __Reply__thread_get_exception_ports_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t old_handlers[32];
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		mach_msg_type_number_t masksCnt;
-		exception_mask_t masks[32];
-		exception_behavior_t old_behaviors[32];
-		thread_state_flavor_t old_flavors[32];
-	} __Reply__thread_swap_exception_ports_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__thread_policy_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__thread_policy_set_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		mach_msg_type_number_t policy_infoCnt;
-		integer_t policy_info[16];
-		boolean_t get_default;
-	} __Reply__thread_policy_get_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__thread_sample_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__etap_trace_thread_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__thread_assign_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__thread_assign_default_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t assigned_set;
-		/* end of the kernel processed data */
-	} __Reply__thread_get_assignment_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__thread_set_policy_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t voucher;
-		/* end of the kernel processed data */
-	} __Reply__thread_get_mach_voucher_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__thread_set_mach_voucher_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t old_voucher;
-		/* end of the kernel processed data */
-	} __Reply__thread_swap_mach_voucher_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-#endif /* !__Reply__thread_act_subsystem__defined */
-
-/* union of all replies */
-
-#ifndef __ReplyUnion__thread_act_subsystem__defined
-#define __ReplyUnion__thread_act_subsystem__defined
-union __ReplyUnion__thread_act_subsystem {
-	__Reply__thread_terminate_t Reply_thread_terminate;
-	__Reply__act_get_state_t Reply_act_get_state;
-	__Reply__act_set_state_t Reply_act_set_state;
-	__Reply__thread_get_state_t Reply_thread_get_state;
-	__Reply__thread_set_state_t Reply_thread_set_state;
-	__Reply__thread_suspend_t Reply_thread_suspend;
-	__Reply__thread_resume_t Reply_thread_resume;
-	__Reply__thread_abort_t Reply_thread_abort;
-	__Reply__thread_abort_safely_t Reply_thread_abort_safely;
-	__Reply__thread_depress_abort_t Reply_thread_depress_abort;
-	__Reply__thread_get_special_port_t Reply_thread_get_special_port;
-	__Reply__thread_set_special_port_t Reply_thread_set_special_port;
-	__Reply__thread_info_t Reply_thread_info;
-	__Reply__thread_set_exception_ports_t Reply_thread_set_exception_ports;
-	__Reply__thread_get_exception_ports_t Reply_thread_get_exception_ports;
-	__Reply__thread_swap_exception_ports_t Reply_thread_swap_exception_ports;
-	__Reply__thread_policy_t Reply_thread_policy;
-	__Reply__thread_policy_set_t Reply_thread_policy_set;
-	__Reply__thread_policy_get_t Reply_thread_policy_get;
-	__Reply__thread_sample_t Reply_thread_sample;
-	__Reply__etap_trace_thread_t Reply_etap_trace_thread;
-	__Reply__thread_assign_t Reply_thread_assign;
-	__Reply__thread_assign_default_t Reply_thread_assign_default;
-	__Reply__thread_get_assignment_t Reply_thread_get_assignment;
-	__Reply__thread_set_policy_t Reply_thread_set_policy;
-	__Reply__thread_get_mach_voucher_t Reply_thread_get_mach_voucher;
-	__Reply__thread_set_mach_voucher_t Reply_thread_set_mach_voucher;
-	__Reply__thread_swap_mach_voucher_t Reply_thread_swap_mach_voucher;
-};
-#endif /* !__RequestUnion__thread_act_subsystem__defined */
-
-#ifndef subsystem_to_name_map_thread_act
-#define subsystem_to_name_map_thread_act \
-    { "thread_terminate", 3600 },\
-    { "act_get_state", 3601 },\
-    { "act_set_state", 3602 },\
-    { "thread_get_state", 3603 },\
-    { "thread_set_state", 3604 },\
-    { "thread_suspend", 3605 },\
-    { "thread_resume", 3606 },\
-    { "thread_abort", 3607 },\
-    { "thread_abort_safely", 3608 },\
-    { "thread_depress_abort", 3609 },\
-    { "thread_get_special_port", 3610 },\
-    { "thread_set_special_port", 3611 },\
-    { "thread_info", 3612 },\
-    { "thread_set_exception_ports", 3613 },\
-    { "thread_get_exception_ports", 3614 },\
-    { "thread_swap_exception_ports", 3615 },\
-    { "thread_policy", 3616 },\
-    { "thread_policy_set", 3617 },\
-    { "thread_policy_get", 3618 },\
-    { "thread_sample", 3619 },\
-    { "etap_trace_thread", 3620 },\
-    { "thread_assign", 3621 },\
-    { "thread_assign_default", 3622 },\
-    { "thread_get_assignment", 3623 },\
-    { "thread_set_policy", 3624 },\
-    { "thread_get_mach_voucher", 3625 },\
-    { "thread_set_mach_voucher", 3626 },\
-    { "thread_swap_mach_voucher", 3627 }
-#endif
-
-#ifdef __AfterMigUserHeader
-__AfterMigUserHeader
-#endif /* __AfterMigUserHeader */
-
-#endif	 /* _thread_act_user_ */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/thread_info.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/thread_info.h
deleted file mode 100644
index c31a27b0..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/thread_info.h
+++ /dev/null
@@ -1,211 +0,0 @@
-/*
- * Copyright (c) 2000-2005, 2015 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-/*
- * Mach Operating System
- * Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University
- * All Rights Reserved.
- *
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- */
-/*
- */
-/*
- *	File:	mach/thread_info
- *
- *	Thread information structure and definitions.
- *
- *	The defintions in this file are exported to the user.  The kernel
- *	will translate its internal data structures to these structures
- *	as appropriate.
- *
- */
-
-#ifndef _MACH_THREAD_INFO_H_
-#define _MACH_THREAD_INFO_H_
-
-#include <mach/boolean.h>
-#include <mach/policy.h>
-#include <mach/time_value.h>
-#include <mach/message.h>
-#include <mach/machine/vm_types.h>
-
-/*
- *	Generic information structure to allow for expansion.
- */
-typedef natural_t       thread_flavor_t;
-typedef integer_t       *thread_info_t;         /* varying array of int */
-
-#define THREAD_INFO_MAX         (32)    /* maximum array size */
-typedef integer_t       thread_info_data_t[THREAD_INFO_MAX];
-
-/*
- *	Currently defined information.
- */
-#define THREAD_BASIC_INFO               3     /* basic information */
-
-struct thread_basic_info {
-	time_value_t    user_time;      /* user run time */
-	time_value_t    system_time;    /* system run time */
-	integer_t       cpu_usage;      /* scaled cpu usage percentage */
-	policy_t        policy;         /* scheduling policy in effect */
-	integer_t       run_state;      /* run state (see below) */
-	integer_t       flags;          /* various flags (see below) */
-	integer_t       suspend_count;  /* suspend count for thread */
-	integer_t       sleep_time;     /* number of seconds that thread
-	                                 *  has been sleeping */
-};
-
-typedef struct thread_basic_info  thread_basic_info_data_t;
-typedef struct thread_basic_info  *thread_basic_info_t;
-#define THREAD_BASIC_INFO_COUNT   ((mach_msg_type_number_t) \
-	        (sizeof(thread_basic_info_data_t) / sizeof(natural_t)))
-
-#define THREAD_IDENTIFIER_INFO          4     /* thread id and other information */
-
-struct thread_identifier_info {
-	uint64_t        thread_id;      /* system-wide unique 64-bit thread id */
-	uint64_t        thread_handle;  /* handle to be used by libproc */
-	uint64_t        dispatch_qaddr; /* libdispatch queue address */
-};
-
-typedef struct thread_identifier_info  thread_identifier_info_data_t;
-typedef struct thread_identifier_info  *thread_identifier_info_t;
-#define THREAD_IDENTIFIER_INFO_COUNT   ((mach_msg_type_number_t) \
-	        (sizeof(thread_identifier_info_data_t) / sizeof(natural_t)))
-
-/*
- *	Scale factor for usage field.
- */
-
-#define TH_USAGE_SCALE  1000
-
-/*
- *	Thread run states (state field).
- */
-
-#define TH_STATE_RUNNING        1       /* thread is running normally */
-#define TH_STATE_STOPPED        2       /* thread is stopped */
-#define TH_STATE_WAITING        3       /* thread is waiting normally */
-#define TH_STATE_UNINTERRUPTIBLE 4      /* thread is in an uninterruptible
-	                                 *  wait */
-#define TH_STATE_HALTED         5       /* thread is halted at a
-	                                 *  clean point */
-
-/*
- *	Thread flags (flags field).
- */
-#define TH_FLAGS_SWAPPED        0x1     /* thread is swapped out */
-#define TH_FLAGS_IDLE           0x2     /* thread is an idle thread */
-#define TH_FLAGS_GLOBAL_FORCED_IDLE     0x4     /* thread performs global forced idle */
-
-/*
- *  Thread extended info (returns same info as proc_pidinfo(...,PROC_PIDTHREADINFO,...)
- */
-#define THREAD_EXTENDED_INFO 5
-#define MAXTHREADNAMESIZE 64
-struct thread_extended_info {           // same as proc_threadinfo (from proc_info.h) & proc_threadinfo_internal (from bsd_taskinfo.h)
-	uint64_t                pth_user_time;          /* user run time */
-	uint64_t                pth_system_time;        /* system run time */
-	int32_t                 pth_cpu_usage;          /* scaled cpu usage percentage */
-	int32_t                 pth_policy;                     /* scheduling policy in effect */
-	int32_t                 pth_run_state;          /* run state (see below) */
-	int32_t                 pth_flags;              /* various flags (see below) */
-	int32_t                 pth_sleep_time;         /* number of seconds that thread */
-	int32_t                 pth_curpri;                     /* cur priority*/
-	int32_t                 pth_priority;           /*  priority*/
-	int32_t                 pth_maxpriority;        /* max priority*/
-	char                    pth_name[MAXTHREADNAMESIZE];    /* thread name, if any */
-};
-typedef struct thread_extended_info thread_extended_info_data_t;
-typedef struct thread_extended_info * thread_extended_info_t;
-#define THREAD_EXTENDED_INFO_COUNT  ((mach_msg_type_number_t) \
-	        (sizeof(thread_extended_info_data_t) / sizeof (natural_t)))
-
-#define THREAD_DEBUG_INFO_INTERNAL 6    /* for kernel development internal info */
-
-
-#define IO_NUM_PRIORITIES       4
-
-#define UPDATE_IO_STATS(info, size)                             \
-{                                                               \
-	info.count++;                                           \
-	info.size += size;                                      \
-}
-
-#define UPDATE_IO_STATS_ATOMIC(info, io_size)                   \
-{                                                               \
-	OSIncrementAtomic64((SInt64 *)&(info.count));           \
-	OSAddAtomic64(io_size, (SInt64 *)&(info.size));         \
-}
-
-struct io_stat_entry {
-	uint64_t        count;
-	uint64_t        size;
-};
-
-struct io_stat_info {
-	struct io_stat_entry    disk_reads;
-	struct io_stat_entry    io_priority[IO_NUM_PRIORITIES];
-	struct io_stat_entry    paging;
-	struct io_stat_entry    metadata;
-	struct io_stat_entry    total_io;
-};
-
-typedef struct io_stat_info *io_stat_info_t;
-
-
-/*
- * Obsolete interfaces.
- */
-
-#define THREAD_SCHED_TIMESHARE_INFO     10
-#define THREAD_SCHED_RR_INFO            11
-#define THREAD_SCHED_FIFO_INFO          12
-
-#endif  /* _MACH_THREAD_INFO_H_ */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/thread_policy.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/thread_policy.h
deleted file mode 100644
index d5c8c1ba..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/thread_policy.h
+++ /dev/null
@@ -1,266 +0,0 @@
-/*
- * Copyright (c) 2000-2007 Apple Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-
-#ifndef _MACH_THREAD_POLICY_H_
-#define _MACH_THREAD_POLICY_H_
-
-#include <mach/mach_types.h>
-
-/*
- * These are the calls for accessing the policy parameters
- * of a particular thread.
- *
- * The extra 'get_default' parameter to the second call is
- * IN/OUT as follows:
- * 1) if asserted on the way in it indicates that the default
- * values should be returned, not the ones currently set, in
- * this case 'get_default' will always be asserted on return;
- * 2) if unasserted on the way in, the current settings are
- * desired and if still unasserted on return, then the info
- * returned reflects the current settings, otherwise if
- * 'get_default' returns asserted, it means that there are no
- * current settings due to other parameters taking precedence,
- * and the default ones are being returned instead.
- */
-
-typedef natural_t       thread_policy_flavor_t;
-typedef integer_t       *thread_policy_t;
-
-/*
- *  kern_return_t	thread_policy_set(
- *                                       thread_t					thread,
- *                                       thread_policy_flavor_t		flavor,
- *                                       thread_policy_t				policy_info,
- *                                       mach_msg_type_number_t		count);
- *
- *  kern_return_t	thread_policy_get(
- *                                       thread_t					thread,
- *                                       thread_policy_flavor_t		flavor,
- *                                       thread_policy_t				policy_info,
- *                                       mach_msg_type_number_t		*count,
- *                                       boolean_t					*get_default);
- */
-
-/*
- * Defined flavors.
- */
-/*
- * THREAD_STANDARD_POLICY:
- *
- * This is the standard (fair) scheduling mode, assigned to new
- * threads.  The thread will be given processor time in a manner
- * which apportions approximately equal share to long running
- * computations.
- *
- * Parameters:
- *	[none]
- */
-
-#define THREAD_STANDARD_POLICY                  1
-
-struct thread_standard_policy {
-	natural_t               no_data;
-};
-
-typedef struct thread_standard_policy   thread_standard_policy_data_t;
-typedef struct thread_standard_policy   *thread_standard_policy_t;
-
-#define THREAD_STANDARD_POLICY_COUNT    0
-
-/*
- * THREAD_EXTENDED_POLICY:
- *
- * Extended form of THREAD_STANDARD_POLICY, which supplies a
- * hint indicating whether this is a long running computation.
- *
- * Parameters:
- *
- * timeshare: TRUE (the default) results in identical scheduling
- * behavior as THREAD_STANDARD_POLICY.
- */
-
-#define THREAD_EXTENDED_POLICY                  1
-
-struct thread_extended_policy {
-	boolean_t               timeshare;
-};
-
-typedef struct thread_extended_policy   thread_extended_policy_data_t;
-typedef struct thread_extended_policy   *thread_extended_policy_t;
-
-#define THREAD_EXTENDED_POLICY_COUNT    ((mach_msg_type_number_t) \
-	(sizeof (thread_extended_policy_data_t) / sizeof (integer_t)))
-
-/*
- * THREAD_TIME_CONSTRAINT_POLICY:
- *
- * This scheduling mode is for threads which have real time
- * constraints on their execution.
- *
- * Parameters:
- *
- * period: This is the nominal amount of time between separate
- * processing arrivals, specified in absolute time units.  A
- * value of 0 indicates that there is no inherent periodicity in
- * the computation.
- *
- * computation: This is the nominal amount of computation
- * time needed during a separate processing arrival, specified
- * in absolute time units.
- *
- * constraint: This is the maximum amount of real time that
- * may elapse from the start of a separate processing arrival
- * to the end of computation for logically correct functioning,
- * specified in absolute time units.  Must be (>= computation).
- * Note that latency = (constraint - computation).
- *
- * preemptible: This indicates that the computation may be
- * interrupted, subject to the constraint specified above.
- */
-
-#define THREAD_TIME_CONSTRAINT_POLICY   2
-
-struct thread_time_constraint_policy {
-	uint32_t                period;
-	uint32_t                computation;
-	uint32_t                constraint;
-	boolean_t               preemptible;
-};
-
-typedef struct thread_time_constraint_policy    \
-        thread_time_constraint_policy_data_t;
-typedef struct thread_time_constraint_policy    \
-        *thread_time_constraint_policy_t;
-
-#define THREAD_TIME_CONSTRAINT_POLICY_COUNT     ((mach_msg_type_number_t) \
-	(sizeof (thread_time_constraint_policy_data_t) / sizeof (integer_t)))
-
-/*
- * THREAD_PRECEDENCE_POLICY:
- *
- * This may be used to indicate the relative value of the
- * computation compared to the other threads in the task.
- *
- * Parameters:
- *
- * importance: The importance is specified as a signed value.
- */
-
-#define THREAD_PRECEDENCE_POLICY                3
-
-struct thread_precedence_policy {
-	integer_t               importance;
-};
-
-typedef struct thread_precedence_policy         thread_precedence_policy_data_t;
-typedef struct thread_precedence_policy         *thread_precedence_policy_t;
-
-#define THREAD_PRECEDENCE_POLICY_COUNT  ((mach_msg_type_number_t) \
-	(sizeof (thread_precedence_policy_data_t) / sizeof (integer_t)))
-
-/*
- * THREAD_AFFINITY_POLICY:
- *
- * This policy is experimental.
- * This may be used to express affinity relationships
- * between threads in the task. Threads with the same affinity tag will
- * be scheduled to share an L2 cache if possible. That is, affinity tags
- * are a hint to the scheduler for thread placement.
- *
- * The namespace of affinity tags is generally local to one task. However,
- * a child task created after the assignment of affinity tags by its parent
- * will share that namespace. In particular, a family of forked processes
- * may be created with a shared affinity namespace.
- *
- * Parameters:
- * tag: The affinity set identifier.
- */
-
-#define THREAD_AFFINITY_POLICY          4
-
-struct thread_affinity_policy {
-	integer_t       affinity_tag;
-};
-
-#define THREAD_AFFINITY_TAG_NULL                0
-
-typedef struct thread_affinity_policy           thread_affinity_policy_data_t;
-typedef struct thread_affinity_policy           *thread_affinity_policy_t;
-
-#define THREAD_AFFINITY_POLICY_COUNT    ((mach_msg_type_number_t) \
-	(sizeof (thread_affinity_policy_data_t) / sizeof (integer_t)))
-
-/*
- * THREAD_BACKGROUND_POLICY:
- */
-
-#define THREAD_BACKGROUND_POLICY        5
-
-struct thread_background_policy {
-	integer_t       priority;
-};
-
-#define THREAD_BACKGROUND_POLICY_DARWIN_BG 0x1000
-
-typedef struct thread_background_policy         thread_background_policy_data_t;
-typedef struct thread_background_policy         *thread_background_policy_t;
-
-#define THREAD_BACKGROUND_POLICY_COUNT  ((mach_msg_type_number_t) \
-	(sizeof (thread_background_policy_data_t) / sizeof (integer_t)))
-
-
-#define THREAD_LATENCY_QOS_POLICY       7
-typedef integer_t       thread_latency_qos_t;
-
-struct thread_latency_qos_policy {
-	thread_latency_qos_t thread_latency_qos_tier;
-};
-
-typedef struct thread_latency_qos_policy        thread_latency_qos_policy_data_t;
-typedef struct thread_latency_qos_policy        *thread_latency_qos_policy_t;
-
-#define THREAD_LATENCY_QOS_POLICY_COUNT ((mach_msg_type_number_t)       \
-	    (sizeof (thread_latency_qos_policy_data_t) / sizeof (integer_t)))
-
-#define THREAD_THROUGHPUT_QOS_POLICY    8
-typedef integer_t       thread_throughput_qos_t;
-
-struct thread_throughput_qos_policy {
-	thread_throughput_qos_t thread_throughput_qos_tier;
-};
-
-typedef struct thread_throughput_qos_policy     thread_throughput_qos_policy_data_t;
-typedef struct thread_throughput_qos_policy     *thread_throughput_qos_policy_t;
-
-#define THREAD_THROUGHPUT_QOS_POLICY_COUNT      ((mach_msg_type_number_t) \
-	    (sizeof (thread_throughput_qos_policy_data_t) / sizeof (integer_t)))
-
-
-
-
-#endif  /* _MACH_THREAD_POLICY_H_ */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/thread_special_ports.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/thread_special_ports.h
deleted file mode 100644
index 02199835..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/thread_special_ports.h
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Copyright (c) 2000-2002 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-/*
- * Mach Operating System
- * Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University
- * All Rights Reserved.
- *
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- */
-/*
- */
-/*
- *	File:	mach/thread_special_ports.h
- *
- *	Defines codes for special_purpose thread ports.  These are NOT
- *	port identifiers - they are only used for the thread_get_special_port
- *	and thread_set_special_port routines.
- *
- */
-
-#ifndef _MACH_THREAD_SPECIAL_PORTS_H_
-#define _MACH_THREAD_SPECIAL_PORTS_H_
-
-#define THREAD_KERNEL_PORT      1       /* Represents the thread to the outside
-	                                 *  world.*/
-
-/*
- *	Definitions for ease of use
- */
-
-#define thread_get_kernel_port(thread, port)    \
-	        (thread_get_special_port((thread), THREAD_KERNEL_PORT, (port)))
-
-#define thread_set_kernel_port(thread, port)    \
-	        (thread_set_special_port((thread), THREAD_KERNEL_PORT, (port)))
-
-#endif  /* _MACH_THREAD_SPECIAL_PORTS_H_ */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/thread_state.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/thread_state.h
deleted file mode 100644
index 77b492e1..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/thread_state.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * Copyright (c) 2015 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-
-#ifndef _MACH_THREAD_STATE_H_
-#define _MACH_THREAD_STATE_H_
-
-#include <Availability.h>
-#include <mach/mach.h>
-
-#ifndef KERNEL
-/*
- * Gets all register values in the target thread with pointer-like contents.
- *
- * There is no guarantee that the returned values are valid pointers, but all
- * valid pointers will be returned.  The order and count of the provided
- * register values is unspecified and may change; registers with values that
- * are not valid pointers may be omitted, so the number of pointers returned
- * may vary from call to call.
- *
- * sp is an out parameter that will contain the stack pointer.
- * length is an in/out parameter for the length of the values array.
- * values is an array of pointers.
- *
- * This may only be called on threads in the current task.  If the current
- * platform defines a stack red zone, the stack pointer returned will be
- * adjusted to account for red zone.
- *
- * If length is insufficient, KERN_INSUFFICIENT_BUFFER_SIZE will be returned
- * and length set to the amount of memory required.  Callers MUST NOT assume
- * that any particular size of buffer will be sufficient and should retry with
- * an appropriately sized buffer upon this error.
- */
-__API_AVAILABLE(macosx(10.14), ios(12.0), tvos(9.0), watchos(5.0))
-kern_return_t thread_get_register_pointer_values(thread_t thread,
-    uintptr_t *sp, size_t *length, uintptr_t *values);
-#endif
-
-#endif /* _MACH_THREAD_STATE_H_ */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/thread_status.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/thread_status.h
deleted file mode 100644
index a91b936e..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/thread_status.h
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- * Copyright (c) 2000-2002 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-/*
- * Mach Operating System
- * Copyright (c) 1991,1990,1989,1988 Carnegie Mellon University
- * All Rights Reserved.
- *
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- */
-/*
- */
-/*
- *	File:	mach/thread_status.h
- *	Author:	Avadis Tevanian, Jr.
- *
- *	This file contains the structure definitions for the user-visible
- *	thread state.  This thread state is examined with the thread_get_state
- *	kernel call and may be changed with the thread_set_state kernel call.
- *
- */
-
-#ifndef _MACH_THREAD_STATUS_H_
-#define _MACH_THREAD_STATUS_H_
-
-/*
- *	The actual structure that comprises the thread state is defined
- *	in the machine dependent module.
- */
-#include <mach/machine/vm_types.h>
-#include <mach/machine/thread_status.h>
-#include <mach/machine/thread_state.h>
-
-/*
- *	Generic definition for machine-dependent thread status.
- */
-
-typedef natural_t       *thread_state_t;        /* Variable-length array */
-
-/* THREAD_STATE_MAX is now defined in <mach/machine/thread_state.h> */
-typedef natural_t       thread_state_data_t[THREAD_STATE_MAX];
-
-#define THREAD_STATE_FLAVOR_LIST        0       /* List of valid flavors */
-#define THREAD_STATE_FLAVOR_LIST_NEW    128
-#define THREAD_STATE_FLAVOR_LIST_10_9   129
-#define THREAD_STATE_FLAVOR_LIST_10_13  130
-#define THREAD_STATE_FLAVOR_LIST_10_15  131
-
-typedef int                     thread_state_flavor_t;
-typedef thread_state_flavor_t   *thread_state_flavor_array_t;
-
-#endif  /* _MACH_THREAD_STATUS_H_ */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/thread_switch.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/thread_switch.h
deleted file mode 100644
index 4ac56bfa..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/thread_switch.h
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * Copyright (c) 2000-2004 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-/*
- * Mach Operating System
- * Copyright (c) 1991,1990,1989 Carnegie Mellon University
- * All Rights Reserved.
- *
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- */
-/*
- */
-
-#ifndef _MACH_THREAD_SWITCH_H_
-#define _MACH_THREAD_SWITCH_H_
-
-#include <mach/mach_types.h>
-#include <mach/kern_return.h>
-#include <mach/message.h>
-#include <mach/mach_traps.h>
-
-/*
- *	Constant definitions for thread_switch trap.
- */
-
-#define SWITCH_OPTION_NONE                      0
-#define SWITCH_OPTION_DEPRESS           1
-#define SWITCH_OPTION_WAIT                      2
-
-#define valid_switch_option(opt)        (0 <= (opt) && (opt) <= 5)
-
-#endif  /* _MACH_THREAD_SWITCH_H_ */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/time_value.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/time_value.h
deleted file mode 100644
index 8cfd37d7..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/time_value.h
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-/*
- * Mach Operating System
- * Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University
- * All Rights Reserved.
- *
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- */
-
-#ifndef _MACH_TIME_VALUE_H_
-#define _MACH_TIME_VALUE_H_
-
-#include <mach/machine/vm_types.h>
-
-/*
- *	Time value returned by kernel.
- */
-
-struct time_value {
-	integer_t seconds;
-	integer_t microseconds;
-};
-
-typedef struct time_value       time_value_t;
-
-/*
- *	Macros to manipulate time values.  Assume that time values
- *	are normalized (microseconds <= 999999).
- */
-#define TIME_MICROS_MAX (1000000)
-
-#define time_value_add_usec(val, micros)        {       \
-	if (((val)->microseconds += (micros))           \
-	        >= TIME_MICROS_MAX) {                   \
-	    (val)->microseconds -= TIME_MICROS_MAX;     \
-	    (val)->seconds++;                           \
-	}                                               \
-}
-
-#define time_value_add(result, addend)          {               \
-	(result)->microseconds += (addend)->microseconds;       \
-	(result)->seconds += (addend)->seconds;                 \
-	if ((result)->microseconds >= TIME_MICROS_MAX) {        \
-	    (result)->microseconds -= TIME_MICROS_MAX;          \
-	    (result)->seconds++;                                \
-	}                                                       \
-}
-
-#endif  /* _MACH_TIME_VALUE_H_ */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/vm_attributes.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/vm_attributes.h
deleted file mode 100644
index bac0993c..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/vm_attributes.h
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * Copyright (c) 2000-2002 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-/*
- * Mach Operating System
- * Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University
- * All Rights Reserved.
- *
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- */
-/*
- */
-/*
- *	File:	mach/vm_attributes.h
- *	Author:	Alessandro Forin
- *
- *	Virtual memory attributes definitions.
- *
- *	These definitions are in addition to the machine-independent
- *	ones (e.g. protection), and are only selectively supported
- *	on specific machine architectures.
- *
- */
-
-#ifndef _MACH_VM_ATTRIBUTES_H_
-#define _MACH_VM_ATTRIBUTES_H_
-
-/*
- *	Types of machine-dependent attributes
- */
-typedef unsigned int    vm_machine_attribute_t;
-
-#define MATTR_CACHE             1       /* cachability */
-#define MATTR_MIGRATE           2       /* migrability */
-#define MATTR_REPLICATE         4       /* replicability */
-
-/*
- *	Values for the above, e.g. operations on attribute
- */
-typedef int             vm_machine_attribute_val_t;
-
-#define MATTR_VAL_OFF           0       /* (generic) turn attribute off */
-#define MATTR_VAL_ON            1       /* (generic) turn attribute on */
-#define MATTR_VAL_GET           2       /* (generic) return current value */
-
-#define MATTR_VAL_CACHE_FLUSH   6       /* flush from all caches */
-#define MATTR_VAL_DCACHE_FLUSH  7       /* flush from data caches */
-#define MATTR_VAL_ICACHE_FLUSH  8       /* flush from instruction caches */
-#define MATTR_VAL_CACHE_SYNC    9       /* sync I+D caches */
-#define MATTR_VAL_CACHE_SYNC    9       /* sync I+D caches */
-
-#define MATTR_VAL_GET_INFO      10      /* get page info (stats) */
-
-#endif  /* _MACH_VM_ATTRIBUTES_H_ */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/vm_behavior.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/vm_behavior.h
deleted file mode 100644
index 727980d5..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/vm_behavior.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * Copyright (c) 2000-2002 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-/*
- *	File:	mach/vm_behavior.h
- *
- *	Virtual memory map behavior definitions.
- *
- */
-
-#ifndef _MACH_VM_BEHAVIOR_H_
-#define _MACH_VM_BEHAVIOR_H_
-
-/*
- *	Types defined:
- *
- *	vm_behavior_t	behavior codes.
- */
-
-typedef int             vm_behavior_t;
-
-/*
- *	Enumeration of valid values for vm_behavior_t.
- *	These describe expected page reference behavior for
- *	for a given range of virtual memory.  For implementation
- *	details see vm/vm_fault.c
- */
-
-
-/*
- * The following behaviors affect the memory region's future behavior
- * and are stored in the VM map entry data structure.
- */
-#define VM_BEHAVIOR_DEFAULT     ((vm_behavior_t) 0)     /* default */
-#define VM_BEHAVIOR_RANDOM      ((vm_behavior_t) 1)     /* random */
-#define VM_BEHAVIOR_SEQUENTIAL  ((vm_behavior_t) 2)     /* forward sequential */
-#define VM_BEHAVIOR_RSEQNTL     ((vm_behavior_t) 3)     /* reverse sequential */
-
-/*
- * The following "behaviors" affect the memory region only at the time of the
- * call and are not stored in the VM map entry.
- */
-#define VM_BEHAVIOR_WILLNEED    ((vm_behavior_t) 4)     /* will need in near future */
-#define VM_BEHAVIOR_DONTNEED    ((vm_behavior_t) 5)     /* dont need in near future */
-#define VM_BEHAVIOR_FREE        ((vm_behavior_t) 6)     /* free memory without write-back */
-#define VM_BEHAVIOR_ZERO_WIRED_PAGES    ((vm_behavior_t) 7)     /* zero out the wired pages of an entry if it is being deleted without unwiring them first */
-#define VM_BEHAVIOR_REUSABLE    ((vm_behavior_t) 8)
-#define VM_BEHAVIOR_REUSE       ((vm_behavior_t) 9)
-#define VM_BEHAVIOR_CAN_REUSE   ((vm_behavior_t) 10)
-#define VM_BEHAVIOR_PAGEOUT     ((vm_behavior_t) 11)
-
-#endif  /*_MACH_VM_BEHAVIOR_H_*/
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/vm_inherit.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/vm_inherit.h
deleted file mode 100644
index 528d6917..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/vm_inherit.h
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * Copyright (c) 2000-2002 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-/*
- * Mach Operating System
- * Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University
- * All Rights Reserved.
- *
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- */
-/*
- */
-/*
- *	File:	mach/vm_inherit.h
- *	Author:	Avadis Tevanian, Jr., Michael Wayne Young
- *
- *	Virtual memory map inheritance definitions.
- *
- */
-
-#ifndef _MACH_VM_INHERIT_H_
-#define _MACH_VM_INHERIT_H_
-
-/*
- *	Types defined:
- *
- *	vm_inherit_t	inheritance codes.
- */
-
-typedef unsigned int            vm_inherit_t;   /* might want to change this */
-
-/*
- *	Enumeration of valid values for vm_inherit_t.
- */
-
-#define VM_INHERIT_SHARE        ((vm_inherit_t) 0)      /* share with child */
-#define VM_INHERIT_COPY         ((vm_inherit_t) 1)      /* copy into child */
-#define VM_INHERIT_NONE         ((vm_inherit_t) 2)      /* absent from child */
-#define VM_INHERIT_DONATE_COPY  ((vm_inherit_t) 3)      /* copy and delete */
-
-#define VM_INHERIT_DEFAULT      VM_INHERIT_COPY
-#define VM_INHERIT_LAST_VALID VM_INHERIT_NONE
-
-#endif  /* _MACH_VM_INHERIT_H_ */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/vm_map.defs b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/vm_map.defs
deleted file mode 100644
index 7caa9263..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/vm_map.defs
+++ /dev/null
@@ -1,510 +0,0 @@
-/*
- * Copyright (c) 2000-2004 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- * 
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- * 
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- * 
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- * 
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_FREE_COPYRIGHT@
- */
-/* 
- * Mach Operating System
- * Copyright (c) 1991,1990,1989 Carnegie Mellon University
- * All Rights Reserved.
- * 
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- * 
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- * 
- * Carnegie Mellon requests users of this software to return to
- * 
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- * 
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- */
-/*
- */
-/*
- *	File:	mach/vm_map.defs
- *
- *	Exported (native-sized) kernel VM calls.
- */
-
-subsystem
-#if	KERNEL_SERVER
-	  KernelServer
-#endif	/* KERNEL_SERVER */
-	  vm_map 3800;
-
-#include <mach/std_types.defs>
-#include <mach/mach_types.defs>
-#include <mach_debug/mach_debug_types.defs>
-
-#define CONCAT(a,b) a ## b
-#if !KERNEL && !LIBSYSCALL_INTERFACE
-#define PREFIX(NAME) CONCAT(_kernelrpc_, NAME)
-#else
-#define PREFIX(NAME) NAME
-#endif
-
-#if	KERNEL_SERVER
-#define KERNEL_SERVER_SUFFIX(NAME) CONCAT(NAME, _external)
-#else
-#define KERNEL_SERVER_SUFFIX(NAME) NAME
-#endif
-
-/*
- *      Returns information about the contents of the virtual
- *      address space of the target task at the specified
- *      address.  The returned protection, inheritance, sharing
- *      and memory object values apply to the entire range described
- *      by the address range returned; the memory object offset
- *      corresponds to the beginning of the address range.
- *      [If the specified address is not allocated, the next
- *      highest address range is described.  If no addresses beyond
- *      the one specified are allocated, the call returns KERN_NO_SPACE.]
- */
-routine vm_region(
-                target_task     : vm_map_t;
-	inout	address		: vm_address_t;
-        out     size            : vm_size_t;
-		flavor		: vm_region_flavor_t;
-	out	info		: vm_region_info_t, CountInOut;
-        out     object_name     : memory_object_name_t =
-                                        MACH_MSG_TYPE_MOVE_SEND
-                                        ctype: mach_port_t);
-
-/*
- *	Allocate zero-filled memory in the address space
- *	of the target task, either at the specified address,
- *	or wherever space can be found (if anywhere is TRUE),
- *	of the specified size.  The address at which the
- *	allocation actually took place is returned.
- */
-
-#if !KERNEL && !LIBSYSCALL_INTERFACE
-skip;
-#else
-routine PREFIX(KERNEL_SERVER_SUFFIX(vm_allocate))(
-		target_task	: vm_task_entry_t;
-	inout	address		: vm_address_t;
-		size		: vm_size_t;
-		flags		: int);
-
-#endif
-
-/*
- *	Deallocate the specified range from the virtual
- *	address space of the target task.
- */
-
-#if !KERNEL && !LIBSYSCALL_INTERFACE
-skip;
-#else
-routine PREFIX(vm_deallocate)(
-		target_task	: vm_task_entry_t;
-		address		: vm_address_t;
-		size		: vm_size_t);
-
-#endif
-
-/*
- *	Set the current or maximum protection attribute
- *	for the specified range of the virtual address
- *	space of the target task.  The current protection
- *	limits the memory access rights of threads within
- *	the task; the maximum protection limits the accesses
- *	that may be given in the current protection.
- *	Protections are specified as a set of {read, write, execute}
- *	*permissions*.
- */
-
-#if !KERNEL && !LIBSYSCALL_INTERFACE
-skip;
-#else
-routine PREFIX(vm_protect)(
-		target_task	: vm_task_entry_t;
-		address		: vm_address_t;
-		size		: vm_size_t;
-		set_maximum	: boolean_t;
-		new_protection	: vm_prot_t);
-#endif
-
-/*
- *	Set the inheritance attribute for the specified range
- *	of the virtual address space of the target task.
- *	The inheritance value is one of {none, copy, share}, and
- *	specifies how the child address space should acquire
- *	this memory at the time of a task_create call.
- */
-routine vm_inherit(
-		target_task	: vm_task_entry_t;
-		address		: vm_address_t;
-		size		: vm_size_t;
-		new_inheritance	: vm_inherit_t);
-
-/*
- *	Returns the contents of the specified range of the
- *	virtual address space of the target task.  [The
- *	range must be aligned on a virtual page boundary,
- *	and must be a multiple of pages in extent.  The
- *	protection on the specified range must permit reading.]
- */
-routine PREFIX(vm_read) (
-		target_task	: vm_map_t;
-		address		: vm_address_t;
-		size		: vm_size_t;
-	out	data		: pointer_t);
-
-/* 
- * List corrollary to vm_read, returns mapped contents of specified
- * ranges within target address space.
- */
-routine vm_read_list(
-		target_task 	: vm_map_t;
-	inout	data_list   	: vm_read_entry_t;
-		count		: natural_t);
-
-/*
- *	Writes the contents of the specified range of the
- *	virtual address space of the target task.  [The
- *	range must be aligned on a virtual page boundary,
- *	and must be a multiple of pages in extent.  The
- *	protection on the specified range must permit writing.]
- */
-routine vm_write(
-		target_task	: vm_map_t;
-		address		: vm_address_t;
-		data		: pointer_t);
-
-/*
- *	Copy the contents of the source range of the virtual
- *	address space of the target task to the destination
- *	range in that same address space.  [Both of the
- *	ranges must be aligned on a virtual page boundary,
- *	and must be multiples of pages in extent.  The
- *	protection on the source range must permit reading,
- *	and the protection on the destination range must
- *	permit writing.]
- */
-routine vm_copy(
-		target_task	: vm_map_t;
-		source_address	: vm_address_t;
-		size		: vm_size_t;
-		dest_address	: vm_address_t);
-
-/*
- *	Returns the contents of the specified range of the
- *	virtual address space of the target task.  [There
- *	are no alignment restrictions, and the results will
- *      overwrite the area pointed to by data - which must
- *      already exist. The protection on the specified range
- *	must permit reading.]
- */
-routine vm_read_overwrite(
-		target_task	: vm_map_t;
-		address		: vm_address_t;
-		size		: vm_size_t;
-		data		: vm_address_t;
-	out	outsize		: vm_size_t);
-
-
-routine vm_msync(
-		target_task	: vm_map_t;
-		address		: vm_address_t;
-		size		: vm_size_t;
-		sync_flags	: vm_sync_t );
-
-/*
- *	Set the paging behavior attribute for the specified range
- *	of the virtual address space of the target task.
- *	The behavior value is one of {default, random, forward 
- *	sequential, reverse sequential} and indicates the expected
- *	page reference pattern for the specified range.
- */
-routine vm_behavior_set(
-		target_task	: vm_map_t;
-		address		: vm_address_t;
-		size		: vm_size_t;
-		new_behavior	: vm_behavior_t);
-
-
-/*
- *	Map a user-defined memory object into the virtual address
- *	space of the target task.  If desired (anywhere is TRUE),
- *	the kernel will find a suitable address range of the
- *	specified size; else, the specific address will be allocated.
- *
- *	The beginning address of the range will be aligned on a virtual
- *	page boundary, be at or beyond the address specified, and
- *	meet the mask requirements (bits turned on in the mask must not
- *	be turned on in the result); the size of the range, in bytes,
- *	will be rounded	up to an integral number of virtual pages.
- *
- *	The memory in the resulting range will be associated with the
- *	specified memory object, with the beginning of the memory range
- *	referring to the specified offset into the memory object.
- *
- *	The mapping will take the current and maximum protections and
- *	the inheritance attributes specified; see the vm_protect and
- *	vm_inherit calls for a description of these attributes.
- *
- *	If desired (copy is TRUE), the memory range will be filled
- *	with a copy of the data from the memory object; this copy will
- *	be private to this mapping in this target task.  Otherwise,
- *	the memory in this mapping will be shared with other mappings
- *	of the same memory object at the same offset (in this task or
- *	in other tasks).  [The Mach kernel only enforces shared memory
- *	consistency among mappings on one host with similar page alignments.
- *	The user-defined memory manager for this object is responsible
- *	for further consistency.]
- */
-routine PREFIX(KERNEL_SERVER_SUFFIX(vm_map)) (
-		target_task	: vm_task_entry_t;
-	inout	address		: vm_address_t;
-		size		: vm_size_t;
-		mask		: vm_address_t;
-		flags		: int;
-		object		: mem_entry_name_port_t;
-		offset		: vm_offset_t;
-		copy		: boolean_t;
-		cur_protection	: vm_prot_t;
-		max_protection	: vm_prot_t;
-		inheritance	: vm_inherit_t);
-
-/*
- *	Set/Get special properties of memory associated
- *	to some virtual address range, such as cachability, 
- *	migrability, replicability.  Machine-dependent.
- */
-routine vm_machine_attribute(
-		target_task	: vm_map_t;
-		address		: vm_address_t;
-		size		: vm_size_t;
-		attribute	: vm_machine_attribute_t;
-	inout	value		: vm_machine_attribute_val_t);
-
-/*
- *      Map portion of a task's address space.
- */
-routine PREFIX(KERNEL_SERVER_SUFFIX(vm_remap)) (
-		target_task	: vm_map_t;
-	inout	target_address	: vm_address_t;
-		size		: vm_size_t;
-		mask		: vm_address_t;
-		flags		: int;
-		src_task	: vm_map_t;
-		src_address	: vm_address_t;
-		copy		: boolean_t;
-	out	cur_protection	: vm_prot_t;
-	out	max_protection	: vm_prot_t;
-		inheritance	: vm_inherit_t);
-
-/*
- *	Require that all future virtual memory allocation
- *	allocates wired memory.  Setting must_wire to FALSE
- *	disables the wired future feature.
- */
-routine task_wire(
-		target_task	: vm_map_t;
-		must_wire	: boolean_t);
-
-	
-/*
- *	Allow application level processes to create named entries which
- *	correspond to mapped portions of their address space.  These named
- *	entries can then be manipulated, shared with other processes in
- *	other address spaces and ultimately mapped in ohter address spaces
- */
-
-routine mach_make_memory_entry(
-		target_task	:vm_map_t;
-	inout	size		:vm_size_t;
-		offset		:vm_offset_t;
-		permission	:vm_prot_t;
-	out	object_handle	:mem_entry_name_port_move_send_t;
-		parent_entry	:mem_entry_name_port_t);
-
-/*
- *      Give the caller information on the given location in a virtual
- *      address space.  If a page is mapped return ref and dirty info.
- */
-routine vm_map_page_query(
-                target_map      :vm_map_t;
-                offset          :vm_offset_t;
-        out     disposition     :integer_t;
-        out     ref_count       :integer_t);
-
-/*
- *	Returns information about a region of memory.
- *	Includes info about the chain of objects rooted at that region.
- *      Only available in MACH_VM_DEBUG compiled kernels,
- *      otherwise returns KERN_FAILURE.
- */
-routine mach_vm_region_info(
-		task		: vm_map_t;
-		address		: vm_address_t;
-	out	region		: vm_info_region_t;
-	out	objects		: vm_info_object_array_t);
-
-routine	vm_mapped_pages_info(
-		task		: vm_map_t;
-	out	pages		: page_address_array_t);
-
-#if 0
-/*
- *    Allow application level processes to create named entries which
- *    are backed by sub-maps which describe regions of address space.
- *    These regions of space can have objects mapped into them and
- *    in turn, can be mapped into target address spaces 
- */
-
-routine	vm_region_object_create(
-		target_task	:vm_map_t;
-	in	size		:vm_size_t;
-	out	region_object	:mach_port_move_send_t);
-#else
-skip; /* was vm_region_object_create */
-#endif
-
-/*
- *	A recursive form of vm_region which probes submaps withint the
- *	address space.
- */
-routine vm_region_recurse(
-                target_task     : vm_map_t;
-	inout	address		: vm_address_t;
-        out     size            : vm_size_t;
-	inout	nesting_depth	: natural_t;
-	out	info		: vm_region_recurse_info_t,CountInOut);
-
-
-/* 
- *	The routines below are temporary, meant for transitional use
- *	as their counterparts are moved from 32 to 64 bit data path
- */
-
-
-routine vm_region_recurse_64(
-                target_task     : vm_map_t;
-	inout	address		: vm_address_t;
-        out     size            : vm_size_t;
-	inout	nesting_depth	: natural_t;
-	out	info		: vm_region_recurse_info_t,CountInOut);
-
-routine mach_vm_region_info_64(
-		task		: vm_map_t;
-		address		: vm_address_t;
-	out	region		: vm_info_region_64_t;
-	out	objects		: vm_info_object_array_t);
-
-routine vm_region_64(
-                target_task     : vm_map_t;
-	inout	address		: vm_address_t;
-        out     size            : vm_size_t;
-		flavor		: vm_region_flavor_t;
-	out	info		: vm_region_info_t, CountInOut;
-        out     object_name     : memory_object_name_t =
-                                        MACH_MSG_TYPE_MOVE_SEND
-                                        ctype: mach_port_t);
-
-routine mach_make_memory_entry_64(
-		target_task	:vm_map_t;
-	inout	size		:memory_object_size_t;
-		offset		:memory_object_offset_t;
-		permission	:vm_prot_t;
-	out	object_handle	:mach_port_move_send_t;
-		parent_entry	:mem_entry_name_port_t);
-
-
-
-routine KERNEL_SERVER_SUFFIX(vm_map_64)(
-		target_task	: vm_task_entry_t;
-	inout	address		: vm_address_t;
-		size		: vm_size_t;
-		mask		: vm_address_t;
-		flags		: int;
-		object		: mem_entry_name_port_t;
-		offset		: memory_object_offset_t;
-		copy		: boolean_t;
-		cur_protection	: vm_prot_t;
-		max_protection	: vm_prot_t;
-		inheritance	: vm_inherit_t);
-
-#if 0
-/*
- * The UPL interfaces are not ready for user-level export.
- */
-routine vm_map_get_upl(
-		target_task	: vm_map_t;
-		address		: vm_map_offset_t;
-	inout	size		: vm_size_t;
-	out	upl		: upl_t;
-	out	page_info	: upl_page_info_array_t, CountInOut;
-	inout	flags		: integer_t;
-		force_data_sync	: integer_t);
-
-routine vm_upl_map(
-		target_task	: vm_map_t;
-		upl		: upl_t;
-	inout	address		: vm_address_t);
-
-routine vm_upl_unmap(
-		target_task	: vm_map_t;
-		upl		: upl_t);
-#else
-skip; /* was vm_map_get_upl */
-skip; /* was vm_upl_map */
-skip; /* was vm_upl_unmap */
-#endif		
-
-/*
- *	Control behavior and investigate state of a "purgable" object in
- *	the virtual address space of the target task.  A purgable object is
- *	created via a call to vm_allocate() with VM_FLAGS_PURGABLE
- *	specified.  See the routine implementation for a complete
- *	definition of the routine.
- */
-routine PREFIX(vm_purgable_control) (
-		target_task	: vm_map_t;
-		address		: vm_address_t;
-		control		: vm_purgable_t;
-	inout	state		: int);
-
-
-routine vm_map_exec_lockdown(
-		target_task 	: vm_map_t);
-
-
-/* vim: set ft=c : */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/vm_map.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/vm_map.h
deleted file mode 100644
index 6c419075..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/vm_map.h
+++ /dev/null
@@ -1,1440 +0,0 @@
-#ifndef	_vm_map_user_
-#define	_vm_map_user_
-
-/* Module vm_map */
-
-#include <string.h>
-#include <mach/ndr.h>
-#include <mach/boolean.h>
-#include <mach/kern_return.h>
-#include <mach/notify.h>
-#include <mach/mach_types.h>
-#include <mach/message.h>
-#include <mach/mig_errors.h>
-#include <mach/port.h>
-	
-/* BEGIN MIG_STRNCPY_ZEROFILL CODE */
-
-#if defined(__has_include)
-#if __has_include(<mach/mig_strncpy_zerofill_support.h>)
-#ifndef USING_MIG_STRNCPY_ZEROFILL
-#define USING_MIG_STRNCPY_ZEROFILL
-#endif
-#ifndef __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
-#define __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
-#ifdef __cplusplus
-extern "C" {
-#endif
-	extern int mig_strncpy_zerofill(char *dest, const char *src, int len) __attribute__((weak_import));
-#ifdef __cplusplus
-}
-#endif
-#endif /* __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__ */
-#endif /* __has_include(<mach/mig_strncpy_zerofill_support.h>) */
-#endif /* __has_include */
-	
-/* END MIG_STRNCPY_ZEROFILL CODE */
-
-
-#ifdef AUTOTEST
-#ifndef FUNCTION_PTR_T
-#define FUNCTION_PTR_T
-typedef void (*function_ptr_t)(mach_port_t, char *, mach_msg_type_number_t);
-typedef struct {
-        char            *name;
-        function_ptr_t  function;
-} function_table_entry;
-typedef function_table_entry   *function_table_t;
-#endif /* FUNCTION_PTR_T */
-#endif /* AUTOTEST */
-
-#ifndef	vm_map_MSG_COUNT
-#define	vm_map_MSG_COUNT	32
-#endif	/* vm_map_MSG_COUNT */
-
-#include <mach/std_types.h>
-#include <mach/mig.h>
-#include <mach/mig.h>
-#include <mach/mach_types.h>
-#include <mach_debug/mach_debug_types.h>
-
-#ifdef __BeforeMigUserHeader
-__BeforeMigUserHeader
-#endif /* __BeforeMigUserHeader */
-
-#include <sys/cdefs.h>
-__BEGIN_DECLS
-
-
-/* Routine vm_region */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t vm_region
-(
-	vm_map_t target_task,
-	vm_address_t *address,
-	vm_size_t *size,
-	vm_region_flavor_t flavor,
-	vm_region_info_t info,
-	mach_msg_type_number_t *infoCnt,
-	mach_port_t *object_name
-);
-
-/* Routine vm_allocate */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t vm_allocate
-(
-	vm_map_t target_task,
-	vm_address_t *address,
-	vm_size_t size,
-	int flags
-);
-
-/* Routine vm_deallocate */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t vm_deallocate
-(
-	vm_map_t target_task,
-	vm_address_t address,
-	vm_size_t size
-);
-
-/* Routine vm_protect */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t vm_protect
-(
-	vm_map_t target_task,
-	vm_address_t address,
-	vm_size_t size,
-	boolean_t set_maximum,
-	vm_prot_t new_protection
-);
-
-/* Routine vm_inherit */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t vm_inherit
-(
-	vm_map_t target_task,
-	vm_address_t address,
-	vm_size_t size,
-	vm_inherit_t new_inheritance
-);
-
-/* Routine vm_read */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t vm_read
-(
-	vm_map_t target_task,
-	vm_address_t address,
-	vm_size_t size,
-	vm_offset_t *data,
-	mach_msg_type_number_t *dataCnt
-);
-
-/* Routine vm_read_list */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t vm_read_list
-(
-	vm_map_t target_task,
-	vm_read_entry_t data_list,
-	natural_t count
-);
-
-/* Routine vm_write */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t vm_write
-(
-	vm_map_t target_task,
-	vm_address_t address,
-	vm_offset_t data,
-	mach_msg_type_number_t dataCnt
-);
-
-/* Routine vm_copy */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t vm_copy
-(
-	vm_map_t target_task,
-	vm_address_t source_address,
-	vm_size_t size,
-	vm_address_t dest_address
-);
-
-/* Routine vm_read_overwrite */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t vm_read_overwrite
-(
-	vm_map_t target_task,
-	vm_address_t address,
-	vm_size_t size,
-	vm_address_t data,
-	vm_size_t *outsize
-);
-
-/* Routine vm_msync */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t vm_msync
-(
-	vm_map_t target_task,
-	vm_address_t address,
-	vm_size_t size,
-	vm_sync_t sync_flags
-);
-
-/* Routine vm_behavior_set */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t vm_behavior_set
-(
-	vm_map_t target_task,
-	vm_address_t address,
-	vm_size_t size,
-	vm_behavior_t new_behavior
-);
-
-/* Routine vm_map */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t vm_map
-(
-	vm_map_t target_task,
-	vm_address_t *address,
-	vm_size_t size,
-	vm_address_t mask,
-	int flags,
-	mem_entry_name_port_t object,
-	vm_offset_t offset,
-	boolean_t copy,
-	vm_prot_t cur_protection,
-	vm_prot_t max_protection,
-	vm_inherit_t inheritance
-);
-
-/* Routine vm_machine_attribute */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t vm_machine_attribute
-(
-	vm_map_t target_task,
-	vm_address_t address,
-	vm_size_t size,
-	vm_machine_attribute_t attribute,
-	vm_machine_attribute_val_t *value
-);
-
-/* Routine vm_remap */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t vm_remap
-(
-	vm_map_t target_task,
-	vm_address_t *target_address,
-	vm_size_t size,
-	vm_address_t mask,
-	int flags,
-	vm_map_t src_task,
-	vm_address_t src_address,
-	boolean_t copy,
-	vm_prot_t *cur_protection,
-	vm_prot_t *max_protection,
-	vm_inherit_t inheritance
-);
-
-/* Routine task_wire */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-__WATCHOS_PROHIBITED
-__TVOS_PROHIBITED
-kern_return_t task_wire
-(
-	vm_map_t target_task,
-	boolean_t must_wire
-);
-
-/* Routine mach_make_memory_entry */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_make_memory_entry
-(
-	vm_map_t target_task,
-	vm_size_t *size,
-	vm_offset_t offset,
-	vm_prot_t permission,
-	mem_entry_name_port_t *object_handle,
-	mem_entry_name_port_t parent_entry
-);
-
-/* Routine vm_map_page_query */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t vm_map_page_query
-(
-	vm_map_t target_map,
-	vm_offset_t offset,
-	integer_t *disposition,
-	integer_t *ref_count
-);
-
-/* Routine mach_vm_region_info */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_vm_region_info
-(
-	vm_map_t task,
-	vm_address_t address,
-	vm_info_region_t *region,
-	vm_info_object_array_t *objects,
-	mach_msg_type_number_t *objectsCnt
-);
-
-/* Routine vm_mapped_pages_info */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t vm_mapped_pages_info
-(
-	vm_map_t task,
-	page_address_array_t *pages,
-	mach_msg_type_number_t *pagesCnt
-);
-
-/* Routine vm_region_recurse */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t vm_region_recurse
-(
-	vm_map_t target_task,
-	vm_address_t *address,
-	vm_size_t *size,
-	natural_t *nesting_depth,
-	vm_region_recurse_info_t info,
-	mach_msg_type_number_t *infoCnt
-);
-
-/* Routine vm_region_recurse_64 */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t vm_region_recurse_64
-(
-	vm_map_t target_task,
-	vm_address_t *address,
-	vm_size_t *size,
-	natural_t *nesting_depth,
-	vm_region_recurse_info_t info,
-	mach_msg_type_number_t *infoCnt
-);
-
-/* Routine mach_vm_region_info_64 */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_vm_region_info_64
-(
-	vm_map_t task,
-	vm_address_t address,
-	vm_info_region_64_t *region,
-	vm_info_object_array_t *objects,
-	mach_msg_type_number_t *objectsCnt
-);
-
-/* Routine vm_region_64 */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t vm_region_64
-(
-	vm_map_t target_task,
-	vm_address_t *address,
-	vm_size_t *size,
-	vm_region_flavor_t flavor,
-	vm_region_info_t info,
-	mach_msg_type_number_t *infoCnt,
-	mach_port_t *object_name
-);
-
-/* Routine mach_make_memory_entry_64 */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t mach_make_memory_entry_64
-(
-	vm_map_t target_task,
-	memory_object_size_t *size,
-	memory_object_offset_t offset,
-	vm_prot_t permission,
-	mach_port_t *object_handle,
-	mem_entry_name_port_t parent_entry
-);
-
-/* Routine vm_map_64 */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t vm_map_64
-(
-	vm_map_t target_task,
-	vm_address_t *address,
-	vm_size_t size,
-	vm_address_t mask,
-	int flags,
-	mem_entry_name_port_t object,
-	memory_object_offset_t offset,
-	boolean_t copy,
-	vm_prot_t cur_protection,
-	vm_prot_t max_protection,
-	vm_inherit_t inheritance
-);
-
-/* Routine vm_purgable_control */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t vm_purgable_control
-(
-	vm_map_t target_task,
-	vm_address_t address,
-	vm_purgable_t control,
-	int *state
-);
-
-/* Routine vm_map_exec_lockdown */
-#ifdef	mig_external
-mig_external
-#else
-extern
-#endif	/* mig_external */
-kern_return_t vm_map_exec_lockdown
-(
-	vm_map_t target_task
-);
-
-__END_DECLS
-
-/********************** Caution **************************/
-/* The following data types should be used to calculate  */
-/* maximum message sizes only. The actual message may be */
-/* smaller, and the position of the arguments within the */
-/* message layout may vary from what is presented here.  */
-/* For example, if any of the arguments are variable-    */
-/* sized, and less than the maximum is sent, the data    */
-/* will be packed tight in the actual message to reduce  */
-/* the presence of holes.                                */
-/********************** Caution **************************/
-
-/* typedefs for all requests */
-
-#ifndef __Request__vm_map_subsystem__defined
-#define __Request__vm_map_subsystem__defined
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		vm_address_t address;
-		vm_region_flavor_t flavor;
-		mach_msg_type_number_t infoCnt;
-	} __Request__vm_region_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		vm_address_t address;
-		vm_size_t size;
-		int flags;
-	} __Request__vm_allocate_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		vm_address_t address;
-		vm_size_t size;
-	} __Request__vm_deallocate_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		vm_address_t address;
-		vm_size_t size;
-		boolean_t set_maximum;
-		vm_prot_t new_protection;
-	} __Request__vm_protect_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		vm_address_t address;
-		vm_size_t size;
-		vm_inherit_t new_inheritance;
-	} __Request__vm_inherit_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		vm_address_t address;
-		vm_size_t size;
-	} __Request__vm_read_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		vm_read_entry_t data_list;
-		natural_t count;
-	} __Request__vm_read_list_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_ool_descriptor_t data;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		vm_address_t address;
-		mach_msg_type_number_t dataCnt;
-	} __Request__vm_write_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		vm_address_t source_address;
-		vm_size_t size;
-		vm_address_t dest_address;
-	} __Request__vm_copy_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		vm_address_t address;
-		vm_size_t size;
-		vm_address_t data;
-	} __Request__vm_read_overwrite_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		vm_address_t address;
-		vm_size_t size;
-		vm_sync_t sync_flags;
-	} __Request__vm_msync_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		vm_address_t address;
-		vm_size_t size;
-		vm_behavior_t new_behavior;
-	} __Request__vm_behavior_set_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t object;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		vm_address_t address;
-		vm_size_t size;
-		vm_address_t mask;
-		int flags;
-		vm_offset_t offset;
-		boolean_t copy;
-		vm_prot_t cur_protection;
-		vm_prot_t max_protection;
-		vm_inherit_t inheritance;
-	} __Request__vm_map_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		vm_address_t address;
-		vm_size_t size;
-		vm_machine_attribute_t attribute;
-		vm_machine_attribute_val_t value;
-	} __Request__vm_machine_attribute_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t src_task;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		vm_address_t target_address;
-		vm_size_t size;
-		vm_address_t mask;
-		int flags;
-		vm_address_t src_address;
-		boolean_t copy;
-		vm_inherit_t inheritance;
-	} __Request__vm_remap_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		boolean_t must_wire;
-	} __Request__task_wire_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t parent_entry;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		vm_size_t size;
-		vm_offset_t offset;
-		vm_prot_t permission;
-	} __Request__mach_make_memory_entry_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		vm_offset_t offset;
-	} __Request__vm_map_page_query_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		vm_address_t address;
-	} __Request__mach_vm_region_info_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__vm_mapped_pages_info_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		vm_address_t address;
-		natural_t nesting_depth;
-		mach_msg_type_number_t infoCnt;
-	} __Request__vm_region_recurse_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		vm_address_t address;
-		natural_t nesting_depth;
-		mach_msg_type_number_t infoCnt;
-	} __Request__vm_region_recurse_64_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		vm_address_t address;
-	} __Request__mach_vm_region_info_64_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		vm_address_t address;
-		vm_region_flavor_t flavor;
-		mach_msg_type_number_t infoCnt;
-	} __Request__vm_region_64_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t parent_entry;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		memory_object_size_t size;
-		memory_object_offset_t offset;
-		vm_prot_t permission;
-	} __Request__mach_make_memory_entry_64_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t object;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		vm_address_t address;
-		vm_size_t size;
-		vm_address_t mask;
-		int flags;
-		memory_object_offset_t offset;
-		boolean_t copy;
-		vm_prot_t cur_protection;
-		vm_prot_t max_protection;
-		vm_inherit_t inheritance;
-	} __Request__vm_map_64_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		vm_address_t address;
-		vm_purgable_t control;
-		int state;
-	} __Request__vm_purgable_control_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-	} __Request__vm_map_exec_lockdown_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-#endif /* !__Request__vm_map_subsystem__defined */
-
-/* union of all requests */
-
-#ifndef __RequestUnion__vm_map_subsystem__defined
-#define __RequestUnion__vm_map_subsystem__defined
-union __RequestUnion__vm_map_subsystem {
-	__Request__vm_region_t Request_vm_region;
-	__Request__vm_allocate_t Request_vm_allocate;
-	__Request__vm_deallocate_t Request_vm_deallocate;
-	__Request__vm_protect_t Request_vm_protect;
-	__Request__vm_inherit_t Request_vm_inherit;
-	__Request__vm_read_t Request_vm_read;
-	__Request__vm_read_list_t Request_vm_read_list;
-	__Request__vm_write_t Request_vm_write;
-	__Request__vm_copy_t Request_vm_copy;
-	__Request__vm_read_overwrite_t Request_vm_read_overwrite;
-	__Request__vm_msync_t Request_vm_msync;
-	__Request__vm_behavior_set_t Request_vm_behavior_set;
-	__Request__vm_map_t Request_vm_map;
-	__Request__vm_machine_attribute_t Request_vm_machine_attribute;
-	__Request__vm_remap_t Request_vm_remap;
-	__Request__task_wire_t Request_task_wire;
-	__Request__mach_make_memory_entry_t Request_mach_make_memory_entry;
-	__Request__vm_map_page_query_t Request_vm_map_page_query;
-	__Request__mach_vm_region_info_t Request_mach_vm_region_info;
-	__Request__vm_mapped_pages_info_t Request_vm_mapped_pages_info;
-	__Request__vm_region_recurse_t Request_vm_region_recurse;
-	__Request__vm_region_recurse_64_t Request_vm_region_recurse_64;
-	__Request__mach_vm_region_info_64_t Request_mach_vm_region_info_64;
-	__Request__vm_region_64_t Request_vm_region_64;
-	__Request__mach_make_memory_entry_64_t Request_mach_make_memory_entry_64;
-	__Request__vm_map_64_t Request_vm_map_64;
-	__Request__vm_purgable_control_t Request_vm_purgable_control;
-	__Request__vm_map_exec_lockdown_t Request_vm_map_exec_lockdown;
-};
-#endif /* !__RequestUnion__vm_map_subsystem__defined */
-/* typedefs for all replies */
-
-#ifndef __Reply__vm_map_subsystem__defined
-#define __Reply__vm_map_subsystem__defined
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t object_name;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		vm_address_t address;
-		vm_size_t size;
-		mach_msg_type_number_t infoCnt;
-		int info[10];
-	} __Reply__vm_region_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		vm_address_t address;
-	} __Reply__vm_allocate_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__vm_deallocate_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__vm_protect_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__vm_inherit_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_ool_descriptor_t data;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		mach_msg_type_number_t dataCnt;
-	} __Reply__vm_read_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		vm_read_entry_t data_list;
-	} __Reply__vm_read_list_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__vm_write_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__vm_copy_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		vm_size_t outsize;
-	} __Reply__vm_read_overwrite_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__vm_msync_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__vm_behavior_set_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		vm_address_t address;
-	} __Reply__vm_map_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		vm_machine_attribute_val_t value;
-	} __Reply__vm_machine_attribute_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		vm_address_t target_address;
-		vm_prot_t cur_protection;
-		vm_prot_t max_protection;
-	} __Reply__vm_remap_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__task_wire_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t object_handle;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		vm_size_t size;
-	} __Reply__mach_make_memory_entry_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		integer_t disposition;
-		integer_t ref_count;
-	} __Reply__vm_map_page_query_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_ool_descriptor_t objects;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		vm_info_region_t region;
-		mach_msg_type_number_t objectsCnt;
-	} __Reply__mach_vm_region_info_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_ool_descriptor_t pages;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		mach_msg_type_number_t pagesCnt;
-	} __Reply__vm_mapped_pages_info_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		vm_address_t address;
-		vm_size_t size;
-		natural_t nesting_depth;
-		mach_msg_type_number_t infoCnt;
-		int info[19];
-	} __Reply__vm_region_recurse_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		vm_address_t address;
-		vm_size_t size;
-		natural_t nesting_depth;
-		mach_msg_type_number_t infoCnt;
-		int info[19];
-	} __Reply__vm_region_recurse_64_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_ool_descriptor_t objects;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		vm_info_region_64_t region;
-		mach_msg_type_number_t objectsCnt;
-	} __Reply__mach_vm_region_info_64_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t object_name;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		vm_address_t address;
-		vm_size_t size;
-		mach_msg_type_number_t infoCnt;
-		int info[10];
-	} __Reply__vm_region_64_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t object_handle;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		memory_object_size_t size;
-	} __Reply__mach_make_memory_entry_64_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		vm_address_t address;
-	} __Reply__vm_map_64_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		int state;
-	} __Reply__vm_purgable_control_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-	} __Reply__vm_map_exec_lockdown_t __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-#endif /* !__Reply__vm_map_subsystem__defined */
-
-/* union of all replies */
-
-#ifndef __ReplyUnion__vm_map_subsystem__defined
-#define __ReplyUnion__vm_map_subsystem__defined
-union __ReplyUnion__vm_map_subsystem {
-	__Reply__vm_region_t Reply_vm_region;
-	__Reply__vm_allocate_t Reply_vm_allocate;
-	__Reply__vm_deallocate_t Reply_vm_deallocate;
-	__Reply__vm_protect_t Reply_vm_protect;
-	__Reply__vm_inherit_t Reply_vm_inherit;
-	__Reply__vm_read_t Reply_vm_read;
-	__Reply__vm_read_list_t Reply_vm_read_list;
-	__Reply__vm_write_t Reply_vm_write;
-	__Reply__vm_copy_t Reply_vm_copy;
-	__Reply__vm_read_overwrite_t Reply_vm_read_overwrite;
-	__Reply__vm_msync_t Reply_vm_msync;
-	__Reply__vm_behavior_set_t Reply_vm_behavior_set;
-	__Reply__vm_map_t Reply_vm_map;
-	__Reply__vm_machine_attribute_t Reply_vm_machine_attribute;
-	__Reply__vm_remap_t Reply_vm_remap;
-	__Reply__task_wire_t Reply_task_wire;
-	__Reply__mach_make_memory_entry_t Reply_mach_make_memory_entry;
-	__Reply__vm_map_page_query_t Reply_vm_map_page_query;
-	__Reply__mach_vm_region_info_t Reply_mach_vm_region_info;
-	__Reply__vm_mapped_pages_info_t Reply_vm_mapped_pages_info;
-	__Reply__vm_region_recurse_t Reply_vm_region_recurse;
-	__Reply__vm_region_recurse_64_t Reply_vm_region_recurse_64;
-	__Reply__mach_vm_region_info_64_t Reply_mach_vm_region_info_64;
-	__Reply__vm_region_64_t Reply_vm_region_64;
-	__Reply__mach_make_memory_entry_64_t Reply_mach_make_memory_entry_64;
-	__Reply__vm_map_64_t Reply_vm_map_64;
-	__Reply__vm_purgable_control_t Reply_vm_purgable_control;
-	__Reply__vm_map_exec_lockdown_t Reply_vm_map_exec_lockdown;
-};
-#endif /* !__RequestUnion__vm_map_subsystem__defined */
-
-#ifndef subsystem_to_name_map_vm_map
-#define subsystem_to_name_map_vm_map \
-    { "vm_region", 3800 },\
-    { "vm_allocate", 3801 },\
-    { "vm_deallocate", 3802 },\
-    { "vm_protect", 3803 },\
-    { "vm_inherit", 3804 },\
-    { "vm_read", 3805 },\
-    { "vm_read_list", 3806 },\
-    { "vm_write", 3807 },\
-    { "vm_copy", 3808 },\
-    { "vm_read_overwrite", 3809 },\
-    { "vm_msync", 3810 },\
-    { "vm_behavior_set", 3811 },\
-    { "vm_map", 3812 },\
-    { "vm_machine_attribute", 3813 },\
-    { "vm_remap", 3814 },\
-    { "task_wire", 3815 },\
-    { "mach_make_memory_entry", 3816 },\
-    { "vm_map_page_query", 3817 },\
-    { "mach_vm_region_info", 3818 },\
-    { "vm_mapped_pages_info", 3819 },\
-    { "vm_region_recurse", 3821 },\
-    { "vm_region_recurse_64", 3822 },\
-    { "mach_vm_region_info_64", 3823 },\
-    { "vm_region_64", 3824 },\
-    { "mach_make_memory_entry_64", 3825 },\
-    { "vm_map_64", 3826 },\
-    { "vm_purgable_control", 3830 },\
-    { "vm_map_exec_lockdown", 3831 }
-#endif
-
-#ifdef __AfterMigUserHeader
-__AfterMigUserHeader
-#endif /* __AfterMigUserHeader */
-
-#endif	 /* _vm_map_user_ */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/vm_page_size.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/vm_page_size.h
deleted file mode 100644
index 26d7a730..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/vm_page_size.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * Copyright (c) 2013 Apple Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-
-#ifndef _VM_PAGE_SIZE_H_
-#define _VM_PAGE_SIZE_H_
-
-#include <Availability.h>
-#include <mach/mach_types.h>
-#include <sys/cdefs.h>
-
-__BEGIN_DECLS
-
-/*
- *	Globally interesting numbers.
- *	These macros assume vm_page_size is a power-of-2.
- */
-extern  vm_size_t       vm_page_size;
-extern  vm_size_t       vm_page_mask;
-extern  int             vm_page_shift;
-
-/*
- *	These macros assume vm_page_size is a power-of-2.
- */
-#define trunc_page(x)   ((x) & (~(vm_page_size - 1)))
-#define round_page(x)   trunc_page((x) + (vm_page_size - 1))
-
-/*
- *	Page-size rounding macros for the fixed-width VM types.
- */
-#define mach_vm_trunc_page(x) ((mach_vm_offset_t)(x) & ~((signed)vm_page_mask))
-#define mach_vm_round_page(x) (((mach_vm_offset_t)(x) + vm_page_mask) & ~((signed)vm_page_mask))
-
-
-extern  vm_size_t       vm_kernel_page_size     __OSX_AVAILABLE_STARTING(__MAC_10_9, __IPHONE_7_0);
-extern  vm_size_t       vm_kernel_page_mask     __OSX_AVAILABLE_STARTING(__MAC_10_9, __IPHONE_7_0);
-extern  int             vm_kernel_page_shift    __OSX_AVAILABLE_STARTING(__MAC_10_9, __IPHONE_7_0);
-
-#define trunc_page_kernel(x)   ((x) & (~vm_kernel_page_mask))
-#define round_page_kernel(x)   trunc_page_kernel((x) + vm_kernel_page_mask)
-
-__END_DECLS
-
-#endif
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/vm_param.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/vm_param.h
deleted file mode 100644
index e836267f..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/vm_param.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * Copyright (c) 2000-2006 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-/*
- * Mach Operating System
- * Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University
- * All Rights Reserved.
- *
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- */
-/*
- */
-/*
- *	File:	mach/vm_param.h
- *	Author:	Avadis Tevanian, Jr., Michael Wayne Young
- *	Date:	1985
- *
- *	Machine independent virtual memory parameters.
- *
- */
-
-#ifndef _MACH_VM_PARAM_H_
-#define _MACH_VM_PARAM_H_
-
-#include <mach/machine/vm_param.h>
-
-
-#endif  /* _MACH_VM_PARAM_H_ */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/vm_prot.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/vm_prot.h
deleted file mode 100644
index 8914da23..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/vm_prot.h
+++ /dev/null
@@ -1,152 +0,0 @@
-/*
- * Copyright (c) 2000-2002 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-/*
- * Mach Operating System
- * Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University
- * All Rights Reserved.
- *
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- */
-/*
- */
-/*
- *	File:	mach/vm_prot.h
- *	Author:	Avadis Tevanian, Jr., Michael Wayne Young
- *
- *	Virtual memory protection definitions.
- *
- */
-
-#ifndef _MACH_VM_PROT_H_
-#define _MACH_VM_PROT_H_
-
-/*
- *	Types defined:
- *
- *	vm_prot_t		VM protection values.
- */
-
-typedef int             vm_prot_t;
-
-/*
- *	Protection values, defined as bits within the vm_prot_t type
- */
-
-#define VM_PROT_NONE    ((vm_prot_t) 0x00)
-
-#define VM_PROT_READ    ((vm_prot_t) 0x01)      /* read permission */
-#define VM_PROT_WRITE   ((vm_prot_t) 0x02)      /* write permission */
-#define VM_PROT_EXECUTE ((vm_prot_t) 0x04)      /* execute permission */
-
-/*
- *	The default protection for newly-created virtual memory
- */
-
-#define VM_PROT_DEFAULT (VM_PROT_READ|VM_PROT_WRITE)
-
-/*
- *	The maximum privileges possible, for parameter checking.
- */
-
-#define VM_PROT_ALL     (VM_PROT_READ|VM_PROT_WRITE|VM_PROT_EXECUTE)
-
-/*
- *	An invalid protection value.
- *	Used only by memory_object_lock_request to indicate no change
- *	to page locks.  Using -1 here is a bad idea because it
- *	looks like VM_PROT_ALL and then some.
- */
-
-#define VM_PROT_NO_CHANGE       ((vm_prot_t) 0x08)
-
-/*
- *      When a caller finds that he cannot obtain write permission on a
- *      mapped entry, the following flag can be used.  The entry will
- *      be made "needs copy" effectively copying the object (using COW),
- *      and write permission will be added to the maximum protections
- *      for the associated entry.
- */
-
-#define VM_PROT_COPY            ((vm_prot_t) 0x10)
-
-
-/*
- *	Another invalid protection value.
- *	Used only by memory_object_data_request upon an object
- *	which has specified a copy_call copy strategy. It is used
- *	when the kernel wants a page belonging to a copy of the
- *	object, and is only asking the object as a result of
- *	following a shadow chain. This solves the race between pages
- *	being pushed up by the memory manager and the kernel
- *	walking down the shadow chain.
- */
-
-#define VM_PROT_WANTS_COPY      ((vm_prot_t) 0x10)
-
-
-/*
- *      Another invalid protection value.
- *	Indicates that the other protection bits are to be applied as a mask
- *	against the actual protection bits of the map entry.
- */
-#define VM_PROT_IS_MASK         ((vm_prot_t) 0x40)
-
-/*
- * Another invalid protection value to support execute-only protection.
- * VM_PROT_STRIP_READ is a special marker that tells mprotect to not
- * set VM_PROT_READ. We have to do it this way because existing code
- * expects the system to set VM_PROT_READ if VM_PROT_EXECUTE is set.
- * VM_PROT_EXECUTE_ONLY is just a convenience value to indicate that
- * the memory should be executable and explicitly not readable. It will
- * be ignored on platforms that do not support this type of protection.
- */
-#define VM_PROT_STRIP_READ              ((vm_prot_t) 0x80)
-#define VM_PROT_EXECUTE_ONLY    (VM_PROT_EXECUTE|VM_PROT_STRIP_READ)
-
-#endif  /* _MACH_VM_PROT_H_ */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/vm_purgable.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/vm_purgable.h
deleted file mode 100644
index 80ea756d..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/vm_purgable.h
+++ /dev/null
@@ -1,162 +0,0 @@
-/*
- * Copyright (c) 2003-2007 Apple Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-
-/*
- * Virtual memory map purgeable object definitions.
- * Objects that will be needed in the future (forward cached objects) should be queued LIFO.
- * Objects that have been used and are cached for reuse (backward cached) should be queued FIFO.
- * Every user of purgeable memory is entitled to using the highest volatile group (7).
- * Only if a client wants some of its objects to definitely be purged earlier, it can put those in
- * another group. This could be used to make all FIFO objects (in the lower group) go away before
- * any LIFO objects (in the higher group) go away.
- * Objects that should not get any chance to stay around can be marked as "obsolete". They will
- * be emptied before any other objects or pages are reclaimed. Obsolete objects are not emptied
- * in any particular order.
- * 'purgeable' is recognized as the correct spelling. For historical reasons, definitions
- * in this file are spelled 'purgable'.
- */
-
-#ifndef _MACH_VM_PURGABLE_H_
-#define _MACH_VM_PURGABLE_H_
-
-/*
- *	Types defined:
- *
- *	vm_purgable_t	purgeable object control codes.
- */
-
-typedef int     vm_purgable_t;
-
-/*
- *	Enumeration of valid values for vm_purgable_t.
- */
-#define VM_PURGABLE_SET_STATE   ((vm_purgable_t) 0)     /* set state of purgeable object */
-#define VM_PURGABLE_GET_STATE   ((vm_purgable_t) 1)     /* get state of purgeable object */
-#define VM_PURGABLE_PURGE_ALL   ((vm_purgable_t) 2)     /* purge all volatile objects now */
-#define VM_PURGABLE_SET_STATE_FROM_KERNEL ((vm_purgable_t) 3) /* set state from kernel */
-
-/*
- * Purgeable state:
- *
- *  31 15 14 13 12 11 10 8 7 6 5 4 3 2 1 0
- * +-----+--+-----+--+----+-+-+---+---+---+
- * |     |NA|DEBUG|  | GRP| |B|ORD|   |STA|
- * +-----+--+-----+--+----+-+-+---+---+---+
- * " ": unused (i.e. reserved)
- * STA: purgeable state
- *      see: VM_PURGABLE_NONVOLATILE=0 to VM_PURGABLE_DENY=3
- * ORD: order
- *      see:VM_VOLATILE_ORDER_*
- * B: behavior
- *      see: VM_PURGABLE_BEHAVIOR_*
- * GRP: group
- *      see: VM_VOLATILE_GROUP_*
- * DEBUG: debug
- *      see: VM_PURGABLE_DEBUG_*
- * NA: no aging
- *      see: VM_PURGABLE_NO_AGING*
- */
-
-#define VM_PURGABLE_NO_AGING_SHIFT      16
-#define VM_PURGABLE_NO_AGING_MASK       (0x1 << VM_PURGABLE_NO_AGING_SHIFT)
-#define VM_PURGABLE_NO_AGING            (0x1 << VM_PURGABLE_NO_AGING_SHIFT)
-
-#define VM_PURGABLE_DEBUG_SHIFT 12
-#define VM_PURGABLE_DEBUG_MASK  (0x3 << VM_PURGABLE_DEBUG_SHIFT)
-#define VM_PURGABLE_DEBUG_EMPTY (0x1 << VM_PURGABLE_DEBUG_SHIFT)
-#define VM_PURGABLE_DEBUG_FAULT (0x2 << VM_PURGABLE_DEBUG_SHIFT)
-
-/*
- * Volatile memory ordering groups (group zero objects are purged before group 1, etc...
- * It is implementation dependent as to whether these groups are global or per-address space.
- * (for the moment, they are global).
- */
-#define VM_VOLATILE_GROUP_SHIFT         8
-#define VM_VOLATILE_GROUP_MASK          (7 << VM_VOLATILE_GROUP_SHIFT)
-#define VM_VOLATILE_GROUP_DEFAULT   VM_VOLATILE_GROUP_0
-
-#define VM_VOLATILE_GROUP_0                     (0 << VM_VOLATILE_GROUP_SHIFT)
-#define VM_VOLATILE_GROUP_1                     (1 << VM_VOLATILE_GROUP_SHIFT)
-#define VM_VOLATILE_GROUP_2                     (2 << VM_VOLATILE_GROUP_SHIFT)
-#define VM_VOLATILE_GROUP_3                     (3 << VM_VOLATILE_GROUP_SHIFT)
-#define VM_VOLATILE_GROUP_4                     (4 << VM_VOLATILE_GROUP_SHIFT)
-#define VM_VOLATILE_GROUP_5                     (5 << VM_VOLATILE_GROUP_SHIFT)
-#define VM_VOLATILE_GROUP_6                     (6 << VM_VOLATILE_GROUP_SHIFT)
-#define VM_VOLATILE_GROUP_7                     (7 << VM_VOLATILE_GROUP_SHIFT)
-
-/*
- * Purgeable behavior
- * Within the same group, FIFO objects will be emptied before objects that are added later.
- * LIFO objects will be emptied after objects that are added later.
- * - Input only, not returned on state queries.
- */
-#define VM_PURGABLE_BEHAVIOR_SHIFT  6
-#define VM_PURGABLE_BEHAVIOR_MASK   (1 << VM_PURGABLE_BEHAVIOR_SHIFT)
-#define VM_PURGABLE_BEHAVIOR_FIFO   (0 << VM_PURGABLE_BEHAVIOR_SHIFT)
-#define VM_PURGABLE_BEHAVIOR_LIFO   (1 << VM_PURGABLE_BEHAVIOR_SHIFT)
-
-/*
- * Obsolete object.
- * Disregard volatile group, and put object into obsolete queue instead, so it is the next object
- * to be purged.
- * - Input only, not returned on state queries.
- */
-#define VM_PURGABLE_ORDERING_SHIFT              5
-#define VM_PURGABLE_ORDERING_MASK               (1 << VM_PURGABLE_ORDERING_SHIFT)
-#define VM_PURGABLE_ORDERING_OBSOLETE   (1 << VM_PURGABLE_ORDERING_SHIFT)
-#define VM_PURGABLE_ORDERING_NORMAL             (0 << VM_PURGABLE_ORDERING_SHIFT)
-
-
-/*
- * Obsolete parameter - do not use
- */
-#define VM_VOLATILE_ORDER_SHIFT                 4
-#define VM_VOLATILE_ORDER_MASK                  (1 << VM_VOLATILE_ORDER_SHIFT)
-#define VM_VOLATILE_MAKE_FIRST_IN_GROUP (1 << VM_VOLATILE_ORDER_SHIFT)
-#define VM_VOLATILE_MAKE_LAST_IN_GROUP  (0 << VM_VOLATILE_ORDER_SHIFT)
-
-/*
- * Valid states of a purgeable object.
- */
-#define VM_PURGABLE_STATE_MIN   0               /* minimum purgeable object state value */
-#define VM_PURGABLE_STATE_MAX   3               /* maximum purgeable object state value */
-#define VM_PURGABLE_STATE_MASK  3               /* mask to separate state from group */
-
-#define VM_PURGABLE_NONVOLATILE 0               /* purgeable object is non-volatile */
-#define VM_PURGABLE_VOLATILE    1               /* purgeable object is volatile */
-#define VM_PURGABLE_EMPTY       2               /* purgeable object is volatile and empty */
-#define VM_PURGABLE_DENY        3               /* (mark) object not purgeable */
-
-#define VM_PURGABLE_ALL_MASKS   (VM_PURGABLE_STATE_MASK | \
-	                         VM_VOLATILE_ORDER_MASK | \
-	                         VM_PURGABLE_ORDERING_MASK | \
-	                         VM_PURGABLE_BEHAVIOR_MASK | \
-	                         VM_VOLATILE_GROUP_MASK | \
-	                         VM_PURGABLE_DEBUG_MASK | \
-	                         VM_PURGABLE_NO_AGING_MASK)
-#endif  /* _MACH_VM_PURGABLE_H_ */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/vm_region.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/vm_region.h
deleted file mode 100644
index f6f371fa..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/vm_region.h
+++ /dev/null
@@ -1,349 +0,0 @@
-/*
- * Copyright (c) 2000-2016 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-/*
- *	File:	mach/vm_region.h
- *
- *	Define the attributes of a task's memory region
- *
- */
-
-#ifndef _MACH_VM_REGION_H_
-#define _MACH_VM_REGION_H_
-
-#include <mach/boolean.h>
-#include <mach/vm_prot.h>
-#include <mach/vm_inherit.h>
-#include <mach/vm_behavior.h>
-#include <mach/vm_types.h>
-#include <mach/message.h>
-#include <mach/machine/vm_param.h>
-#include <mach/machine/vm_types.h>
-#include <mach/memory_object_types.h>
-
-#include <sys/cdefs.h>
-
-#pragma pack(push, 4)
-
-// LP64todo: all the current tools are 32bit, obviously never worked for 64b
-// so probably should be a real 32b ID vs. ptr.
-// Current users just check for equality
-typedef uint32_t vm32_object_id_t;
-
-/*
- *	Types defined:
- *
- *	vm_region_info_t	memory region attributes
- */
-
-#define VM_REGION_INFO_MAX      (1024)
-typedef int     *vm_region_info_t;
-typedef int     *vm_region_info_64_t;
-typedef int     *vm_region_recurse_info_t;
-typedef int     *vm_region_recurse_info_64_t;
-typedef int      vm_region_flavor_t;
-typedef int      vm_region_info_data_t[VM_REGION_INFO_MAX];
-
-#define VM_REGION_BASIC_INFO_64         9
-struct vm_region_basic_info_64 {
-	vm_prot_t               protection;
-	vm_prot_t               max_protection;
-	vm_inherit_t            inheritance;
-	boolean_t               shared;
-	boolean_t               reserved;
-	memory_object_offset_t  offset;
-	vm_behavior_t           behavior;
-	unsigned short          user_wired_count;
-};
-typedef struct vm_region_basic_info_64          *vm_region_basic_info_64_t;
-typedef struct vm_region_basic_info_64           vm_region_basic_info_data_64_t;
-
-#define VM_REGION_BASIC_INFO_COUNT_64   ((mach_msg_type_number_t) \
-	(sizeof(vm_region_basic_info_data_64_t)/sizeof(int)))
-
-/*
- * Passing VM_REGION_BASIC_INFO to vm_region_64
- * automatically converts it to a VM_REGION_BASIC_INFO_64.
- * Please use that explicitly instead.
- */
-#define VM_REGION_BASIC_INFO            10
-
-/*
- * This is the legacy basic info structure.  It is
- * deprecated because it passes only a 32-bit memory object
- * offset back - too small for many larger objects (e.g. files).
- */
-struct vm_region_basic_info {
-	vm_prot_t               protection;
-	vm_prot_t               max_protection;
-	vm_inherit_t            inheritance;
-	boolean_t               shared;
-	boolean_t               reserved;
-	uint32_t                offset; /* too small for a real offset */
-	vm_behavior_t           behavior;
-	unsigned short          user_wired_count;
-};
-
-typedef struct vm_region_basic_info             *vm_region_basic_info_t;
-typedef struct vm_region_basic_info              vm_region_basic_info_data_t;
-
-#define VM_REGION_BASIC_INFO_COUNT ((mach_msg_type_number_t) \
-	(sizeof(vm_region_basic_info_data_t)/sizeof(int)))
-
-#define SM_COW             1
-#define SM_PRIVATE         2
-#define SM_EMPTY           3
-#define SM_SHARED          4
-#define SM_TRUESHARED      5
-#define SM_PRIVATE_ALIASED 6
-#define SM_SHARED_ALIASED  7
-#define SM_LARGE_PAGE      8
-
-/*
- * For submap info,  the SM flags above are overlayed when a submap
- * is encountered.  The field denotes whether or not machine level mapping
- * information is being shared.  PTE's etc.  When such sharing is taking
- * place the value returned is SM_TRUESHARED otherwise SM_PRIVATE is passed
- * back.
- */
-
-
-
-
-#define VM_REGION_EXTENDED_INFO 13
-struct vm_region_extended_info {
-	vm_prot_t               protection;
-	unsigned int            user_tag;
-	unsigned int            pages_resident;
-	unsigned int            pages_shared_now_private;
-	unsigned int            pages_swapped_out;
-	unsigned int            pages_dirtied;
-	unsigned int            ref_count;
-	unsigned short          shadow_depth;
-	unsigned char           external_pager;
-	unsigned char           share_mode;
-	unsigned int            pages_reusable;
-};
-typedef struct vm_region_extended_info          *vm_region_extended_info_t;
-typedef struct vm_region_extended_info           vm_region_extended_info_data_t;
-#define VM_REGION_EXTENDED_INFO_COUNT                   \
-	((mach_msg_type_number_t)                       \
-	 (sizeof (vm_region_extended_info_data_t) / sizeof (natural_t)))
-
-
-
-
-#define VM_REGION_TOP_INFO      12
-
-struct vm_region_top_info {
-	unsigned int            obj_id;
-	unsigned int            ref_count;
-	unsigned int            private_pages_resident;
-	unsigned int            shared_pages_resident;
-	unsigned char           share_mode;
-};
-
-typedef struct vm_region_top_info               *vm_region_top_info_t;
-typedef struct vm_region_top_info                vm_region_top_info_data_t;
-
-#define VM_REGION_TOP_INFO_COUNT                                        \
-	((mach_msg_type_number_t)                                       \
-	 (sizeof(vm_region_top_info_data_t) / sizeof(natural_t)))
-
-
-
-/*
- * vm_region_submap_info will return information on a submap or object.
- * The user supplies a nesting level on the call.  When a walk of the
- * user's map is done and a submap is encountered, the nesting count is
- * checked. If the nesting count is greater than 1 the submap is entered and
- * the offset relative to the address in the base map is examined.  If the
- * nesting count is zero, the information on the submap is returned.
- * The caller may thus learn about a submap and its contents by judicious
- * choice of the base map address and nesting count.  The nesting count
- * allows penetration of recursively mapped submaps.  If a submap is
- * encountered as a mapped entry of another submap, the caller may bump
- * the nesting count and call vm_region_recurse again on the target address
- * range.  The "is_submap" field tells the caller whether or not a submap
- * has been encountered.
- *
- * Object only fields are filled in through a walking of the object shadow
- * chain (where one is present), and a walking of the resident page queue.
- *
- */
-
-struct vm_region_submap_info {
-	vm_prot_t               protection;     /* present access protection */
-	vm_prot_t               max_protection; /* max avail through vm_prot */
-	vm_inherit_t            inheritance;/* behavior of map/obj on fork */
-	uint32_t                offset;         /* offset into object/map */
-	unsigned int            user_tag;       /* user tag on map entry */
-	unsigned int            pages_resident; /* only valid for objects */
-	unsigned int            pages_shared_now_private; /* only for objects */
-	unsigned int            pages_swapped_out; /* only for objects */
-	unsigned int            pages_dirtied;   /* only for objects */
-	unsigned int            ref_count;       /* obj/map mappers, etc */
-	unsigned short          shadow_depth;   /* only for obj */
-	unsigned char           external_pager;  /* only for obj */
-	unsigned char           share_mode;     /* see enumeration */
-	boolean_t               is_submap;      /* submap vs obj */
-	vm_behavior_t           behavior;       /* access behavior hint */
-	vm32_object_id_t        object_id;      /* obj/map name, not a handle */
-	unsigned short          user_wired_count;
-};
-
-typedef struct vm_region_submap_info            *vm_region_submap_info_t;
-typedef struct vm_region_submap_info             vm_region_submap_info_data_t;
-
-#define VM_REGION_SUBMAP_INFO_COUNT                                     \
-	((mach_msg_type_number_t)                                       \
-	 (sizeof(vm_region_submap_info_data_t) / sizeof(natural_t)))
-
-struct vm_region_submap_info_64 {
-	vm_prot_t               protection;     /* present access protection */
-	vm_prot_t               max_protection; /* max avail through vm_prot */
-	vm_inherit_t            inheritance;/* behavior of map/obj on fork */
-	memory_object_offset_t  offset;         /* offset into object/map */
-	unsigned int            user_tag;       /* user tag on map entry */
-	unsigned int            pages_resident; /* only valid for objects */
-	unsigned int            pages_shared_now_private; /* only for objects */
-	unsigned int            pages_swapped_out; /* only for objects */
-	unsigned int            pages_dirtied;   /* only for objects */
-	unsigned int            ref_count;       /* obj/map mappers, etc */
-	unsigned short          shadow_depth;   /* only for obj */
-	unsigned char           external_pager;  /* only for obj */
-	unsigned char           share_mode;     /* see enumeration */
-	boolean_t               is_submap;      /* submap vs obj */
-	vm_behavior_t           behavior;       /* access behavior hint */
-	vm32_object_id_t        object_id;      /* obj/map name, not a handle */
-	unsigned short          user_wired_count;
-	unsigned int            pages_reusable;
-	vm_object_id_t          object_id_full;
-};
-
-typedef struct vm_region_submap_info_64         *vm_region_submap_info_64_t;
-typedef struct vm_region_submap_info_64          vm_region_submap_info_data_64_t;
-
-#define VM_REGION_SUBMAP_INFO_V2_SIZE   \
-	(sizeof (vm_region_submap_info_data_64_t))
-#define VM_REGION_SUBMAP_INFO_V1_SIZE   \
-	(VM_REGION_SUBMAP_INFO_V2_SIZE - \
-	 sizeof (vm_object_id_t) /* object_id_full */ )
-#define VM_REGION_SUBMAP_INFO_V0_SIZE   \
-	(VM_REGION_SUBMAP_INFO_V1_SIZE - \
-	 sizeof (unsigned int) /* pages_reusable */ )
-
-#define VM_REGION_SUBMAP_INFO_V2_COUNT_64 \
-	((mach_msg_type_number_t) \
-	 (VM_REGION_SUBMAP_INFO_V2_SIZE / sizeof (natural_t)))
-#define VM_REGION_SUBMAP_INFO_V1_COUNT_64 \
-	((mach_msg_type_number_t) \
-	 (VM_REGION_SUBMAP_INFO_V1_SIZE / sizeof (natural_t)))
-#define VM_REGION_SUBMAP_INFO_V0_COUNT_64 \
-	((mach_msg_type_number_t) \
-	 (VM_REGION_SUBMAP_INFO_V0_SIZE / sizeof (natural_t)))
-
-/* set this to the latest version */
-#define VM_REGION_SUBMAP_INFO_COUNT_64          VM_REGION_SUBMAP_INFO_V2_COUNT_64
-
-struct vm_region_submap_short_info_64 {
-	vm_prot_t               protection;     /* present access protection */
-	vm_prot_t               max_protection; /* max avail through vm_prot */
-	vm_inherit_t            inheritance;/* behavior of map/obj on fork */
-	memory_object_offset_t  offset;         /* offset into object/map */
-	unsigned int            user_tag;       /* user tag on map entry */
-	unsigned int            ref_count;       /* obj/map mappers, etc */
-	unsigned short          shadow_depth;   /* only for obj */
-	unsigned char           external_pager;  /* only for obj */
-	unsigned char           share_mode;     /* see enumeration */
-	boolean_t               is_submap;      /* submap vs obj */
-	vm_behavior_t           behavior;       /* access behavior hint */
-	vm32_object_id_t        object_id;      /* obj/map name, not a handle */
-	unsigned short          user_wired_count;
-};
-
-typedef struct vm_region_submap_short_info_64   *vm_region_submap_short_info_64_t;
-typedef struct vm_region_submap_short_info_64    vm_region_submap_short_info_data_64_t;
-
-#define VM_REGION_SUBMAP_SHORT_INFO_COUNT_64                            \
-	((mach_msg_type_number_t)                                       \
-	 (sizeof (vm_region_submap_short_info_data_64_t) / sizeof (natural_t)))
-
-struct mach_vm_read_entry {
-	mach_vm_address_t address;
-	mach_vm_size_t size;
-};
-
-struct vm_read_entry {
-	vm_address_t    address;
-	vm_size_t       size;
-};
-
-#ifdef VM32_SUPPORT
-struct vm32_read_entry {
-	vm32_address_t  address;
-	vm32_size_t     size;
-};
-#endif
-
-
-#define VM_MAP_ENTRY_MAX  (256)
-
-typedef struct mach_vm_read_entry       mach_vm_read_entry_t[VM_MAP_ENTRY_MAX];
-typedef struct vm_read_entry            vm_read_entry_t[VM_MAP_ENTRY_MAX];
-#ifdef VM32_SUPPORT
-typedef struct vm32_read_entry          vm32_read_entry_t[VM_MAP_ENTRY_MAX];
-#endif
-
-#pragma pack(pop)
-
-
-#define VM_PAGE_INFO_MAX
-typedef int *vm_page_info_t;
-typedef int vm_page_info_data_t[VM_PAGE_INFO_MAX];
-typedef int vm_page_info_flavor_t;
-
-#define VM_PAGE_INFO_BASIC              1
-struct vm_page_info_basic {
-	int                     disposition;
-	int                     ref_count;
-	vm_object_id_t          object_id;
-	memory_object_offset_t  offset;
-	int                     depth;
-	int                     __pad; /* pad to 64-bit boundary */
-};
-typedef struct vm_page_info_basic               *vm_page_info_basic_t;
-typedef struct vm_page_info_basic               vm_page_info_basic_data_t;
-
-#define VM_PAGE_INFO_BASIC_COUNT        ((mach_msg_type_number_t) \
-	(sizeof(vm_page_info_basic_data_t)/sizeof(int)))
-
-
-#endif  /*_MACH_VM_REGION_H_*/
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/vm_statistics.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/vm_statistics.h
deleted file mode 100644
index 0a2ee5b7..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/vm_statistics.h
+++ /dev/null
@@ -1,523 +0,0 @@
-/*
- * Copyright (c) 2000-2019 Apple Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-/*
- * Mach Operating System
- * Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University
- * All Rights Reserved.
- *
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- */
-/*
- */
-/*
- *	File:	mach/vm_statistics.h
- *	Author:	Avadis Tevanian, Jr., Michael Wayne Young, David Golub
- *
- *	Virtual memory statistics structure.
- *
- */
-
-#ifndef _MACH_VM_STATISTICS_H_
-#define _MACH_VM_STATISTICS_H_
-
-#include <mach/machine/vm_types.h>
-
-
-/*
- * vm_statistics
- *
- * History:
- *	rev0 -  original structure.
- *	rev1 -  added purgable info (purgable_count and purges).
- *	rev2 -  added speculative_count.
- *
- * Note: you cannot add any new fields to this structure. Add them below in
- *       vm_statistics64.
- */
-
-struct vm_statistics {
-	natural_t       free_count;             /* # of pages free */
-	natural_t       active_count;           /* # of pages active */
-	natural_t       inactive_count;         /* # of pages inactive */
-	natural_t       wire_count;             /* # of pages wired down */
-	natural_t       zero_fill_count;        /* # of zero fill pages */
-	natural_t       reactivations;          /* # of pages reactivated */
-	natural_t       pageins;                /* # of pageins */
-	natural_t       pageouts;               /* # of pageouts */
-	natural_t       faults;                 /* # of faults */
-	natural_t       cow_faults;             /* # of copy-on-writes */
-	natural_t       lookups;                /* object cache lookups */
-	natural_t       hits;                   /* object cache hits */
-
-	/* added for rev1 */
-	natural_t       purgeable_count;        /* # of pages purgeable */
-	natural_t       purges;                 /* # of pages purged */
-
-	/* added for rev2 */
-	/*
-	 * NB: speculative pages are already accounted for in "free_count",
-	 * so "speculative_count" is the number of "free" pages that are
-	 * used to hold data that was read speculatively from disk but
-	 * haven't actually been used by anyone so far.
-	 */
-	natural_t       speculative_count;      /* # of pages speculative */
-};
-
-/* Used by all architectures */
-typedef struct vm_statistics    *vm_statistics_t;
-typedef struct vm_statistics    vm_statistics_data_t;
-
-/*
- * vm_statistics64
- *
- * History:
- *	rev0 -  original structure.
- *	rev1 -  added purgable info (purgable_count and purges).
- *	rev2 -  added speculative_count.
- *	   ----
- *	rev3 -  changed name to vm_statistics64.
- *		changed some fields in structure to 64-bit on
- *		arm, i386 and x86_64 architectures.
- *	rev4 -  require 64-bit alignment for efficient access
- *		in the kernel. No change to reported data.
- *
- */
-
-struct vm_statistics64 {
-	natural_t       free_count;             /* # of pages free */
-	natural_t       active_count;           /* # of pages active */
-	natural_t       inactive_count;         /* # of pages inactive */
-	natural_t       wire_count;             /* # of pages wired down */
-	uint64_t        zero_fill_count;        /* # of zero fill pages */
-	uint64_t        reactivations;          /* # of pages reactivated */
-	uint64_t        pageins;                /* # of pageins */
-	uint64_t        pageouts;               /* # of pageouts */
-	uint64_t        faults;                 /* # of faults */
-	uint64_t        cow_faults;             /* # of copy-on-writes */
-	uint64_t        lookups;                /* object cache lookups */
-	uint64_t        hits;                   /* object cache hits */
-	uint64_t        purges;                 /* # of pages purged */
-	natural_t       purgeable_count;        /* # of pages purgeable */
-	/*
-	 * NB: speculative pages are already accounted for in "free_count",
-	 * so "speculative_count" is the number of "free" pages that are
-	 * used to hold data that was read speculatively from disk but
-	 * haven't actually been used by anyone so far.
-	 */
-	natural_t       speculative_count;      /* # of pages speculative */
-
-	/* added for rev1 */
-	uint64_t        decompressions;         /* # of pages decompressed */
-	uint64_t        compressions;           /* # of pages compressed */
-	uint64_t        swapins;                /* # of pages swapped in (via compression segments) */
-	uint64_t        swapouts;               /* # of pages swapped out (via compression segments) */
-	natural_t       compressor_page_count;  /* # of pages used by the compressed pager to hold all the compressed data */
-	natural_t       throttled_count;        /* # of pages throttled */
-	natural_t       external_page_count;    /* # of pages that are file-backed (non-swap) */
-	natural_t       internal_page_count;    /* # of pages that are anonymous */
-	uint64_t        total_uncompressed_pages_in_compressor; /* # of pages (uncompressed) held within the compressor. */
-} __attribute__((aligned(8)));
-
-typedef struct vm_statistics64  *vm_statistics64_t;
-typedef struct vm_statistics64  vm_statistics64_data_t;
-
-/*
- * VM_STATISTICS_TRUNCATE_TO_32_BIT
- *
- * This is used by host_statistics() to truncate and peg the 64-bit in-kernel values from
- * vm_statistics64 to the 32-bit values of the older structure above (vm_statistics).
- */
-#define VM_STATISTICS_TRUNCATE_TO_32_BIT(value) ((uint32_t)(((value) > UINT32_MAX ) ? UINT32_MAX : (value)))
-
-/*
- * vm_extmod_statistics
- *
- * Structure to record modifications to a task by an
- * external agent.
- *
- * History:
- *	rev0 -  original structure.
- */
-
-struct vm_extmod_statistics {
-	int64_t task_for_pid_count;                     /* # of times task port was looked up */
-	int64_t task_for_pid_caller_count;      /* # of times this task called task_for_pid */
-	int64_t thread_creation_count;          /* # of threads created in task */
-	int64_t thread_creation_caller_count;   /* # of threads created by task */
-	int64_t thread_set_state_count;         /* # of register state sets in task */
-	int64_t thread_set_state_caller_count;  /* # of register state sets by task */
-} __attribute__((aligned(8)));
-
-typedef struct vm_extmod_statistics *vm_extmod_statistics_t;
-typedef struct vm_extmod_statistics vm_extmod_statistics_data_t;
-
-typedef struct vm_purgeable_stat {
-	uint64_t        count;
-	uint64_t        size;
-}vm_purgeable_stat_t;
-
-struct vm_purgeable_info {
-	vm_purgeable_stat_t fifo_data[8];
-	vm_purgeable_stat_t obsolete_data;
-	vm_purgeable_stat_t lifo_data[8];
-};
-
-typedef struct vm_purgeable_info        *vm_purgeable_info_t;
-
-/* included for the vm_map_page_query call */
-
-#define VM_PAGE_QUERY_PAGE_PRESENT      0x1
-#define VM_PAGE_QUERY_PAGE_FICTITIOUS   0x2
-#define VM_PAGE_QUERY_PAGE_REF          0x4
-#define VM_PAGE_QUERY_PAGE_DIRTY        0x8
-#define VM_PAGE_QUERY_PAGE_PAGED_OUT    0x10
-#define VM_PAGE_QUERY_PAGE_COPIED       0x20
-#define VM_PAGE_QUERY_PAGE_SPECULATIVE  0x40
-#define VM_PAGE_QUERY_PAGE_EXTERNAL     0x80
-#define VM_PAGE_QUERY_PAGE_CS_VALIDATED 0x100
-#define VM_PAGE_QUERY_PAGE_CS_TAINTED   0x200
-#define VM_PAGE_QUERY_PAGE_CS_NX        0x400
-#define VM_PAGE_QUERY_PAGE_REUSABLE     0x800
-
-
-/*
- * VM allocation flags:
- *
- * VM_FLAGS_FIXED
- *      (really the absence of VM_FLAGS_ANYWHERE)
- *	Allocate new VM region at the specified virtual address, if possible.
- *
- * VM_FLAGS_ANYWHERE
- *	Allocate new VM region anywhere it would fit in the address space.
- *
- * VM_FLAGS_PURGABLE
- *	Create a purgable VM object for that new VM region.
- *
- * VM_FLAGS_4GB_CHUNK
- *	The new VM region will be chunked up into 4GB sized pieces.
- *
- * VM_FLAGS_NO_PMAP_CHECK
- *	(for DEBUG kernel config only, ignored for other configs)
- *	Do not check that there is no stale pmap mapping for the new VM region.
- *	This is useful for kernel memory allocations at bootstrap when building
- *	the initial kernel address space while some memory is already in use.
- *
- * VM_FLAGS_OVERWRITE
- *	The new VM region can replace existing VM regions if necessary
- *	(to be used in combination with VM_FLAGS_FIXED).
- *
- * VM_FLAGS_NO_CACHE
- *	Pages brought in to this VM region are placed on the speculative
- *	queue instead of the active queue.  In other words, they are not
- *	cached so that they will be stolen first if memory runs low.
- */
-
-#define VM_FLAGS_FIXED          0x0000
-#define VM_FLAGS_ANYWHERE       0x0001
-#define VM_FLAGS_PURGABLE       0x0002
-#define VM_FLAGS_4GB_CHUNK      0x0004
-#define VM_FLAGS_RANDOM_ADDR    0x0008
-#define VM_FLAGS_NO_CACHE       0x0010
-#define VM_FLAGS_RESILIENT_CODESIGN     0x0020
-#define VM_FLAGS_RESILIENT_MEDIA        0x0040
-#define VM_FLAGS_OVERWRITE      0x4000  /* delete any existing mappings first */
-/*
- * VM_FLAGS_SUPERPAGE_MASK
- *	3 bits that specify whether large pages should be used instead of
- *	base pages (!=0), as well as the requested page size.
- */
-#define VM_FLAGS_SUPERPAGE_MASK 0x70000 /* bits 0x10000, 0x20000, 0x40000 */
-#define VM_FLAGS_RETURN_DATA_ADDR       0x100000 /* Return address of target data, rather than base of page */
-#define VM_FLAGS_RETURN_4K_DATA_ADDR    0x800000 /* Return 4K aligned address of target data */
-#define VM_FLAGS_ALIAS_MASK     0xFF000000
-#define VM_GET_FLAGS_ALIAS(flags, alias)                        \
-	        (alias) = ((flags) & VM_FLAGS_ALIAS_MASK) >> 24
-#define VM_SET_FLAGS_ALIAS(flags, alias)                        \
-	        (flags) = (((flags) & ~VM_FLAGS_ALIAS_MASK) |   \
-	        (((alias) & ~VM_FLAGS_ALIAS_MASK) << 24))
-
-/* These are the flags that we accept from user-space */
-#define VM_FLAGS_USER_ALLOCATE  (VM_FLAGS_FIXED |               \
-	                         VM_FLAGS_ANYWHERE |            \
-	                         VM_FLAGS_PURGABLE |            \
-	                         VM_FLAGS_4GB_CHUNK |           \
-	                         VM_FLAGS_RANDOM_ADDR |         \
-	                         VM_FLAGS_NO_CACHE |            \
-	                         VM_FLAGS_OVERWRITE |           \
-	                         VM_FLAGS_SUPERPAGE_MASK |      \
-	                         VM_FLAGS_ALIAS_MASK)
-#define VM_FLAGS_USER_MAP       (VM_FLAGS_USER_ALLOCATE |       \
-	                         VM_FLAGS_RETURN_4K_DATA_ADDR | \
-	                         VM_FLAGS_RETURN_DATA_ADDR)
-#define VM_FLAGS_USER_REMAP     (VM_FLAGS_FIXED |               \
-	                         VM_FLAGS_ANYWHERE |            \
-	                         VM_FLAGS_RANDOM_ADDR |         \
-	                         VM_FLAGS_OVERWRITE|            \
-	                         VM_FLAGS_RETURN_DATA_ADDR |    \
-	                         VM_FLAGS_RESILIENT_CODESIGN |  \
-	                         VM_FLAGS_RESILIENT_MEDIA)
-
-#define VM_FLAGS_SUPERPAGE_SHIFT 16
-#define SUPERPAGE_NONE                  0       /* no superpages, if all bits are 0 */
-#define SUPERPAGE_SIZE_ANY              1
-#define VM_FLAGS_SUPERPAGE_NONE     (SUPERPAGE_NONE     << VM_FLAGS_SUPERPAGE_SHIFT)
-#define VM_FLAGS_SUPERPAGE_SIZE_ANY (SUPERPAGE_SIZE_ANY << VM_FLAGS_SUPERPAGE_SHIFT)
-#define SUPERPAGE_SIZE_2MB              2
-#define VM_FLAGS_SUPERPAGE_SIZE_2MB (SUPERPAGE_SIZE_2MB<<VM_FLAGS_SUPERPAGE_SHIFT)
-
-/*
- * EXC_GUARD definitions for virtual memory.
- */
-#define GUARD_TYPE_VIRT_MEMORY  0x5
-
-/* Reasons for exception for virtual memory */
-enum virtual_memory_guard_exception_codes {
-	kGUARD_EXC_DEALLOC_GAP  = 1u << 0
-};
-
-
-/* current accounting postmark */
-#define __VM_LEDGER_ACCOUNTING_POSTMARK 2019032600
-
-/* discrete values: */
-#define VM_LEDGER_TAG_NONE      0x00000000
-#define VM_LEDGER_TAG_DEFAULT   0x00000001
-#define VM_LEDGER_TAG_NETWORK   0x00000002
-#define VM_LEDGER_TAG_MEDIA     0x00000003
-#define VM_LEDGER_TAG_GRAPHICS  0x00000004
-#define VM_LEDGER_TAG_NEURAL    0x00000005
-#define VM_LEDGER_TAG_MAX       0x00000005
-/* individual bits: */
-#define VM_LEDGER_FLAG_NO_FOOTPRINT     0x00000001
-#define VM_LEDGER_FLAGS (VM_LEDGER_FLAG_NO_FOOTPRINT)
-
-
-#define VM_MEMORY_MALLOC 1
-#define VM_MEMORY_MALLOC_SMALL 2
-#define VM_MEMORY_MALLOC_LARGE 3
-#define VM_MEMORY_MALLOC_HUGE 4
-#define VM_MEMORY_SBRK 5// uninteresting -- no one should call
-#define VM_MEMORY_REALLOC 6
-#define VM_MEMORY_MALLOC_TINY 7
-#define VM_MEMORY_MALLOC_LARGE_REUSABLE 8
-#define VM_MEMORY_MALLOC_LARGE_REUSED 9
-
-#define VM_MEMORY_ANALYSIS_TOOL 10
-
-#define VM_MEMORY_MALLOC_NANO 11
-#define VM_MEMORY_MALLOC_MEDIUM 12
-
-#define VM_MEMORY_MACH_MSG 20
-#define VM_MEMORY_IOKIT 21
-#define VM_MEMORY_STACK  30
-#define VM_MEMORY_GUARD  31
-#define VM_MEMORY_SHARED_PMAP 32
-/* memory containing a dylib */
-#define VM_MEMORY_DYLIB 33
-#define VM_MEMORY_OBJC_DISPATCHERS 34
-
-/* Was a nested pmap (VM_MEMORY_SHARED_PMAP) which has now been unnested */
-#define VM_MEMORY_UNSHARED_PMAP 35
-
-
-// Placeholders for now -- as we analyze the libraries and find how they
-// use memory, we can make these labels more specific.
-#define VM_MEMORY_APPKIT 40
-#define VM_MEMORY_FOUNDATION 41
-#define VM_MEMORY_COREGRAPHICS 42
-#define VM_MEMORY_CORESERVICES 43
-#define VM_MEMORY_CARBON VM_MEMORY_CORESERVICES
-#define VM_MEMORY_JAVA 44
-#define VM_MEMORY_COREDATA 45
-#define VM_MEMORY_COREDATA_OBJECTIDS 46
-#define VM_MEMORY_ATS 50
-#define VM_MEMORY_LAYERKIT 51
-#define VM_MEMORY_CGIMAGE 52
-#define VM_MEMORY_TCMALLOC 53
-
-/* private raster data (i.e. layers, some images, QGL allocator) */
-#define VM_MEMORY_COREGRAPHICS_DATA     54
-
-/* shared image and font caches */
-#define VM_MEMORY_COREGRAPHICS_SHARED   55
-
-/* Memory used for virtual framebuffers, shadowing buffers, etc... */
-#define VM_MEMORY_COREGRAPHICS_FRAMEBUFFERS     56
-
-/* Window backing stores, custom shadow data, and compressed backing stores */
-#define VM_MEMORY_COREGRAPHICS_BACKINGSTORES    57
-
-/* x-alloc'd memory */
-#define VM_MEMORY_COREGRAPHICS_XALLOC 58
-
-/* catch-all for other uses, such as the read-only shared data page */
-#define VM_MEMORY_COREGRAPHICS_MISC VM_MEMORY_COREGRAPHICS
-
-/* memory allocated by the dynamic loader for itself */
-#define VM_MEMORY_DYLD 60
-/* malloc'd memory created by dyld */
-#define VM_MEMORY_DYLD_MALLOC 61
-
-/* Used for sqlite page cache */
-#define VM_MEMORY_SQLITE 62
-
-/* JavaScriptCore heaps */
-#define VM_MEMORY_JAVASCRIPT_CORE 63
-#define VM_MEMORY_WEBASSEMBLY VM_MEMORY_JAVASCRIPT_CORE
-/* memory allocated for the JIT */
-#define VM_MEMORY_JAVASCRIPT_JIT_EXECUTABLE_ALLOCATOR 64
-#define VM_MEMORY_JAVASCRIPT_JIT_REGISTER_FILE 65
-
-/* memory allocated for GLSL */
-#define VM_MEMORY_GLSL  66
-
-/* memory allocated for OpenCL.framework */
-#define VM_MEMORY_OPENCL    67
-
-/* memory allocated for QuartzCore.framework */
-#define VM_MEMORY_COREIMAGE 68
-
-/* memory allocated for WebCore Purgeable Buffers */
-#define VM_MEMORY_WEBCORE_PURGEABLE_BUFFERS 69
-
-/* ImageIO memory */
-#define VM_MEMORY_IMAGEIO       70
-
-/* CoreProfile memory */
-#define VM_MEMORY_COREPROFILE   71
-
-/* assetsd / MobileSlideShow memory */
-#define VM_MEMORY_ASSETSD       72
-
-/* libsystem_kernel os_once_alloc */
-#define VM_MEMORY_OS_ALLOC_ONCE 73
-
-/* libdispatch internal allocator */
-#define VM_MEMORY_LIBDISPATCH 74
-
-/* Accelerate.framework image backing stores */
-#define VM_MEMORY_ACCELERATE 75
-
-/* CoreUI image block data */
-#define VM_MEMORY_COREUI 76
-
-/* CoreUI image file */
-#define VM_MEMORY_COREUIFILE 77
-
-/* Genealogy buffers */
-#define VM_MEMORY_GENEALOGY 78
-
-/* RawCamera VM allocated memory */
-#define VM_MEMORY_RAWCAMERA 79
-
-/* corpse info for dead process */
-#define VM_MEMORY_CORPSEINFO 80
-
-/* Apple System Logger (ASL) messages */
-#define VM_MEMORY_ASL 81
-
-/* Swift runtime */
-#define VM_MEMORY_SWIFT_RUNTIME 82
-
-/* Swift metadata */
-#define VM_MEMORY_SWIFT_METADATA 83
-
-/* DHMM data */
-#define VM_MEMORY_DHMM 84
-
-
-/* memory allocated by SceneKit.framework */
-#define VM_MEMORY_SCENEKIT 86
-
-/* memory allocated by skywalk networking */
-#define VM_MEMORY_SKYWALK 87
-
-#define VM_MEMORY_IOSURFACE 88
-
-#define VM_MEMORY_LIBNETWORK 89
-
-#define VM_MEMORY_AUDIO 90
-
-#define VM_MEMORY_VIDEOBITSTREAM 91
-
-/* memory allocated by CoreMedia */
-#define VM_MEMORY_CM_XPC 92
-
-#define VM_MEMORY_CM_RPC 93
-
-#define VM_MEMORY_CM_MEMORYPOOL 94
-
-#define VM_MEMORY_CM_READCACHE 95
-
-#define VM_MEMORY_CM_CRABS 96
-
-/* memory allocated for QuickLookThumbnailing */
-#define VM_MEMORY_QUICKLOOK_THUMBNAILS 97
-
-/* memory allocated by Accounts framework */
-#define VM_MEMORY_ACCOUNTS 98
-
-/* memory allocated by Sanitizer runtime libraries */
-#define VM_MEMORY_SANITIZER 99
-
-/* Differentiate memory needed by GPU drivers and frameworks from generic IOKit allocations */
-#define VM_MEMORY_IOACCELERATOR 100
-
-/* memory allocated by CoreMedia for global image registration of frames */
-#define VM_MEMORY_CM_REGWARP 101
-
-/* Reserve 240-255 for application */
-#define VM_MEMORY_APPLICATION_SPECIFIC_1 240
-#define VM_MEMORY_APPLICATION_SPECIFIC_16 255
-
-#define VM_MAKE_TAG(tag) ((tag) << 24)
-
-
-
-#endif  /* _MACH_VM_STATISTICS_H_ */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/vm_sync.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/vm_sync.h
deleted file mode 100644
index 8dccb9c2..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/vm_sync.h
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * Copyright (c) 2000-2002 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-/*
- * Mach Operating System
- * Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University
- * All Rights Reserved.
- *
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- */
-/*
- *	File:	mach/vm_sync.h
- *
- *	Virtual memory synchronisation definitions.
- *
- */
-
-#ifndef _MACH_VM_SYNC_H_
-#define _MACH_VM_SYNC_H_
-
-typedef unsigned                vm_sync_t;
-
-/*
- *	Synchronization flags, defined as bits within the vm_sync_t type
- */
-
-#define VM_SYNC_ASYNCHRONOUS    ((vm_sync_t) 0x01)
-#define VM_SYNC_SYNCHRONOUS     ((vm_sync_t) 0x02)
-#define VM_SYNC_INVALIDATE      ((vm_sync_t) 0x04)
-#define VM_SYNC_KILLPAGES       ((vm_sync_t) 0x08)
-#define VM_SYNC_DEACTIVATE      ((vm_sync_t) 0x10)
-#define VM_SYNC_CONTIGUOUS      ((vm_sync_t) 0x20)
-#define VM_SYNC_REUSABLEPAGES   ((vm_sync_t) 0x40)
-
-#endif  /* _MACH_VM_SYNC_H_ */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/vm_task.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/vm_task.h
deleted file mode 100644
index 3040cfc1..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/vm_task.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
-** This file contains compatibilty wrapper header for things that are
-** generated from mach/vm_map.defs into mach/vm_map.h.
-**
-** This file will go away eventually - please switch.
-*/
-#include <mach/vm_map.h>
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/vm_types.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/vm_types.h
deleted file mode 100644
index 1367f255..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/mach/vm_types.h
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * Copyright (c) 2000-2018 Apple Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_COPYRIGHT@
- *
- */
-#ifndef _MACH_VM_TYPES_H_
-#define _MACH_VM_TYPES_H_
-
-#include <mach/port.h>
-#include <mach/machine/vm_types.h>
-
-#include <stdint.h>
-
-typedef vm_offset_t             pointer_t;
-typedef vm_offset_t             vm_address_t;
-
-/*
- * We use addr64_t for 64-bit addresses that are used on both
- * 32 and 64-bit machines.  On PPC, they are passed and returned as
- * two adjacent 32-bit GPRs.  We use addr64_t in places where
- * common code must be useable both on 32 and 64-bit machines.
- */
-typedef uint64_t addr64_t;              /* Basic effective address */
-
-/*
- * We use reg64_t for addresses that are 32 bits on a 32-bit
- * machine, and 64 bits on a 64-bit machine, but are always
- * passed and returned in a single GPR on PPC.  This type
- * cannot be used in generic 32-bit c, since on a 64-bit
- * machine the upper half of the register will be ignored
- * by the c compiler in 32-bit mode.  In c, we can only use the
- * type in prototypes of functions that are written in and called
- * from assembly language.  This type is basically a comment.
- */
-typedef uint32_t        reg64_t;
-
-/*
- * To minimize the use of 64-bit fields, we keep some physical
- * addresses (that are page aligned) as 32-bit page numbers.
- * This limits the physical address space to 16TB of RAM.
- */
-typedef uint32_t ppnum_t;               /* Physical page number */
-#define PPNUM_MAX UINT32_MAX
-
-
-
-typedef mach_port_t             vm_map_t;
-
-
-#define VM_MAP_NULL             ((vm_map_t) 0)
-
-/*
- * Evolving definitions, likely to change.
- */
-
-typedef uint64_t                vm_object_offset_t;
-typedef uint64_t                vm_object_size_t;
-
-
-
-
-typedef mach_port_t             upl_t;
-typedef mach_port_t             vm_named_entry_t;
-
-
-#define UPL_NULL                ((upl_t) 0)
-#define VM_NAMED_ENTRY_NULL     ((vm_named_entry_t) 0)
-
-#endif  /* _MACH_VM_TYPES_H_ */
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/syscall_sw.c b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/syscall_sw.c
deleted file mode 100644
index 61b35541..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/syscall_sw.c
+++ /dev/null
@@ -1,136 +0,0 @@
-#define MACH_TRAP_TABLE_COUNT 128
-
-const char *mach_syscall_name_table[MACH_TRAP_TABLE_COUNT] = {
-    /* 0 */ "kern_invalid",
-    /* 1 */ "kern_invalid",
-    /* 2 */ "kern_invalid",
-    /* 3 */ "kern_invalid",
-    /* 4 */ "kern_invalid",
-    /* 5 */ "kern_invalid",
-    /* 6 */ "kern_invalid",
-    /* 7 */ "kern_invalid",
-    /* 8 */ "kern_invalid",
-    /* 9 */ "kern_invalid",
-    /* 10 */ "_kernelrpc_mach_vm_allocate_trap",
-    /* 11 */ "kern_invalid",
-    /* 12 */ "_kernelrpc_mach_vm_deallocate_trap",
-    /* 13 */ "kern_invalid",
-    /* 14 */ "_kernelrpc_mach_vm_protect_trap",
-    /* 15 */ "_kernelrpc_mach_vm_map_trap",
-    /* 16 */ "_kernelrpc_mach_port_allocate_trap",
-    /* 17 */ "_kernelrpc_mach_port_destroy_trap",
-    /* 18 */ "_kernelrpc_mach_port_deallocate_trap",
-    /* 19 */ "_kernelrpc_mach_port_mod_refs_trap",
-    /* 20 */ "_kernelrpc_mach_port_move_member_trap",
-    /* 21 */ "_kernelrpc_mach_port_insert_right_trap",
-    /* 22 */ "_kernelrpc_mach_port_insert_member_trap",
-    /* 23 */ "_kernelrpc_mach_port_extract_member_trap",
-    /* 24 */ "_kernelrpc_mach_port_construct_trap",
-    /* 25 */ "_kernelrpc_mach_port_destruct_trap",
-    /* 26 */ "mach_reply_port",
-    /* 27 */ "thread_self_trap",
-    /* 28 */ "task_self_trap",
-    /* 29 */ "host_self_trap",
-    /* 30 */ "kern_invalid",
-    /* 31 */ "mach_msg_trap",
-    /* 32 */ "mach_msg_overwrite_trap",
-    /* 33 */ "semaphore_signal_trap",
-    /* 34 */ "semaphore_signal_all_trap",
-    /* 35 */ "semaphore_signal_thread_trap",
-    /* 36 */ "semaphore_wait_trap",
-    /* 37 */ "semaphore_wait_signal_trap",
-    /* 38 */ "semaphore_timedwait_trap",
-    /* 39 */ "semaphore_timedwait_signal_trap",
-    /* 40 */ "kern_invalid",
-    /* 41 */ "_kernelrpc_mach_port_guard_trap",
-    /* 42 */ "_kernelrpc_mach_port_unguard_trap",
-    /* 43 */ "mach_generate_activity_id",
-    /* 44 */ "task_name_for_pid",
-    /* 45 */ "task_for_pid",
-    /* 46 */ "pid_for_task",
-    /* 47 */ "kern_invalid",
-    /* 48 */ "macx_swapon",
-    /* 49 */ "macx_swapoff",
-    /* 50 */ "thread_get_special_reply_port",
-    /* 51 */ "macx_triggers",
-    /* 52 */ "macx_backing_store_suspend",
-    /* 53 */ "macx_backing_store_recovery",
-    /* 54 */ "kern_invalid",
-    /* 55 */ "kern_invalid",
-    /* 56 */ "kern_invalid",
-    /* 57 */ "kern_invalid",
-    /* 58 */ "pfz_exit",
-    /* 59 */ "swtch_pri",
-    /* 60 */ "swtch",
-    /* 61 */ "thread_switch",
-    /* 62 */ "clock_sleep_trap",
-    /* 63 */ "kern_invalid",
-    /* traps 64 - 95 reserved (debo) */
-    /* 64 */ "kern_invalid",
-    /* 65 */ "kern_invalid",
-    /* 66 */ "kern_invalid",
-    /* 67 */ "kern_invalid",
-    /* 68 */ "kern_invalid",
-    /* 69 */ "kern_invalid",
-    /* 70 */ "host_create_mach_voucher_trap",
-    /* 71 */ "kern_invalid",
-    /* 72 */ "mach_voucher_extract_attr_recipe_trap",
-    /* 73 */ "kern_invalid",
-    /* 74 */ "kern_invalid",
-    /* 75 */ "kern_invalid",
-    /* 76 */ "kern_invalid",
-    /* 77 */ "_kernelrpc_mach_port_type_trap",
-    /* 78 */ "_kernelrpc_mach_port_request_notification_trap",
-    /* 79 */ "kern_invalid",
-    /* 80 */ "kern_invalid",
-    /* 81 */ "kern_invalid",
-    /* 82 */ "kern_invalid",
-    /* 83 */ "kern_invalid",
-    /* 84 */ "kern_invalid",
-    /* 85 */ "kern_invalid",
-    /* 86 */ "kern_invalid",
-    /* 87 */ "kern_invalid",
-    /* 88 */ "kern_invalid",
-    /* 89 */ "mach_timebase_info_trap",
-    /* 90 */ "mach_wait_until_trap",
-    /* 91 */ "mk_timer_create_trap",
-    /* 92 */ "mk_timer_destroy_trap",
-    /* 93 */ "mk_timer_arm_trap",
-    /* 94 */ "mk_timer_cancel_trap",
-    /* 95 */ "kern_invalid",
-    /* traps 64 - 95 reserved (debo) */
-    /* 96 */ "debug_control_port_for_pid",
-    /* 97 */ "kern_invalid",
-    /* 98 */ "kern_invalid",
-    /* 99 */ "kern_invalid",
-    /* traps 100-107 reserved for iokit (esb) */
-    /* 100 */ "iokit_user_client_trap",
-    /* 101 */ "kern_invalid",
-    /* 102 */ "kern_invalid",
-    /* 103 */ "kern_invalid",
-    /* 104 */ "kern_invalid",
-    /* 105 */ "kern_invalid",
-    /* 106 */ "kern_invalid",
-    /* 107 */ "kern_invalid",
-    /* traps 108-127 unused */
-    /* 108 */ "kern_invalid",
-    /* 109 */ "kern_invalid",
-    /* 110 */ "kern_invalid",
-    /* 111 */ "kern_invalid",
-    /* 112 */ "kern_invalid",
-    /* 113 */ "kern_invalid",
-    /* 114 */ "kern_invalid",
-    /* 115 */ "kern_invalid",
-    /* 116 */ "kern_invalid",
-    /* 117 */ "kern_invalid",
-    /* 118 */ "kern_invalid",
-    /* 119 */ "kern_invalid",
-    /* 120 */ "kern_invalid",
-    /* 121 */ "kern_invalid",
-    /* 122 */ "kern_invalid",
-    /* 123 */ "kern_invalid",
-    /* 124 */ "kern_invalid",
-    /* 125 */ "kern_invalid",
-    /* 126 */ "kern_invalid",
-    /* 127 */ "kern_invalid",
-};
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/syscalls.c b/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/syscalls.c
deleted file mode 100644
index 8e2a1642..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/XnuInternal/syscalls.c
+++ /dev/null
@@ -1,824 +0,0 @@
-/*
- * Copyright (c) 2004-2008 Apple Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- *
- *
- * System call switch table.
- *
- * DO NOT EDIT-- this file is automatically generated.
- * created from /Users/adam/Documents/sources/xnu/build/xnu-6153.11.26/bsd/kern/syscalls.master
- */
-
-#define SOCKETS            1
-#define PSYNCH             1
-#define CONFIG_WORKQUEUE   1
-#define OLD_SEMWAIT_SIGNAL 1
-
-const char *syscallnames[] = {
-    "syscall",   /* 0 = syscall indirect syscall */
-    "exit",      /* 1 = exit */
-    "fork",      /* 2 = fork */
-    "read",      /* 3 = read */
-    "write",     /* 4 = write */
-    "open",      /* 5 = open */
-    "close",     /* 6 = close */
-    "wait4",     /* 7 = wait4 */
-    "#8",        /* 8 = old creat */
-    "link",      /* 9 = link */
-    "unlink",    /* 10 = unlink */
-    "#11",       /* 11 = old execv */
-    "chdir",     /* 12 = chdir */
-    "fchdir",    /* 13 = fchdir */
-    "mknod",     /* 14 = mknod */
-    "chmod",     /* 15 = chmod */
-    "chown",     /* 16 = chown */
-    "#17",       /* 17 = old break */
-    "getfsstat", /* 18 = getfsstat */
-    "#19",       /* 19 = old lseek */
-    "getpid",    /* 20 = getpid */
-    "#21",       /* 21 = old mount */
-    "#22",       /* 22 = old umount */
-    "setuid",    /* 23 = setuid */
-    "getuid",    /* 24 = getuid */
-    "geteuid",   /* 25 = geteuid */
-    "ptrace",    /* 26 = ptrace */
-#if SOCKETS
-    "recvmsg",     /* 27 = recvmsg */
-    "sendmsg",     /* 28 = sendmsg */
-    "recvfrom",    /* 29 = recvfrom */
-    "accept",      /* 30 = accept */
-    "getpeername", /* 31 = getpeername */
-    "getsockname", /* 32 = getsockname */
-#else
-    "#27", /* 27 = */
-    "#28", /* 28 = */
-    "#29", /* 29 = */
-    "#30", /* 30 = */
-    "#31", /* 31 = */
-    "#32", /* 32 = */
-#endif /* SOCKETS */
-    "access",        /* 33 = access */
-    "chflags",       /* 34 = chflags */
-    "fchflags",      /* 35 = fchflags */
-    "sync",          /* 36 = sync */
-    "kill",          /* 37 = kill */
-    "#38",           /* 38 = old stat */
-    "getppid",       /* 39 = getppid */
-    "#40",           /* 40 = old lstat */
-    "dup",           /* 41 = dup */
-    "pipe",          /* 42 = pipe */
-    "getegid",       /* 43 = getegid */
-    "#44",           /* 44 = old profil */
-    "#45",           /* 45 = old ktrace */
-    "sigaction",     /* 46 = sigaction */
-    "getgid",        /* 47 = getgid */
-    "sigprocmask",   /* 48 = sigprocmask */
-    "getlogin",      /* 49 = getlogin */
-    "setlogin",      /* 50 = setlogin */
-    "acct",          /* 51 = acct */
-    "sigpending",    /* 52 = sigpending */
-    "sigaltstack",   /* 53 = sigaltstack */
-    "ioctl",         /* 54 = ioctl */
-    "reboot",        /* 55 = reboot */
-    "revoke",        /* 56 = revoke */
-    "symlink",       /* 57 = symlink */
-    "readlink",      /* 58 = readlink */
-    "execve",        /* 59 = execve */
-    "umask",         /* 60 = umask */
-    "chroot",        /* 61 = chroot */
-    "#62",           /* 62 = old fstat */
-    "#63",           /* 63 = used internally and reserved */
-    "#64",           /* 64 = old getpagesize */
-    "msync",         /* 65 = msync */
-    "vfork",         /* 66 = vfork */
-    "#67",           /* 67 = old vread */
-    "#68",           /* 68 = old vwrite */
-    "#69",           /* 69 = old sbrk */
-    "#70",           /* 70 = old sstk */
-    "#71",           /* 71 = old mmap */
-    "#72",           /* 72 = old vadvise */
-    "munmap",        /* 73 = munmap */
-    "mprotect",      /* 74 = mprotect */
-    "madvise",       /* 75 = madvise */
-    "#76",           /* 76 = old vhangup */
-    "#77",           /* 77 = old vlimit */
-    "mincore",       /* 78 = mincore */
-    "getgroups",     /* 79 = getgroups */
-    "setgroups",     /* 80 = setgroups */
-    "getpgrp",       /* 81 = getpgrp */
-    "setpgid",       /* 82 = setpgid */
-    "setitimer",     /* 83 = setitimer */
-    "#84",           /* 84 = old wait */
-    "swapon",        /* 85 = swapon */
-    "getitimer",     /* 86 = getitimer */
-    "#87",           /* 87 = old gethostname */
-    "#88",           /* 88 = old sethostname */
-    "getdtablesize", /* 89 = getdtablesize */
-    "dup2",          /* 90 = dup2 */
-    "#91",           /* 91 = old getdopt */
-    "fcntl",         /* 92 = fcntl */
-    "select",        /* 93 = select */
-    "#94",           /* 94 = old setdopt */
-    "fsync",         /* 95 = fsync */
-    "setpriority",   /* 96 = setpriority */
-#if SOCKETS
-    "socket",  /* 97 = socket */
-    "connect", /* 98 = connect */
-#else
-    "#97", /* 97 = */
-    "#98", /* 98 = */
-#endif /* SOCKETS */
-    "#99",         /* 99 = old accept */
-    "getpriority", /* 100 = getpriority */
-    "#101",        /* 101 = old send */
-    "#102",        /* 102 = old recv */
-    "#103",        /* 103 = old sigreturn */
-#if SOCKETS
-    "bind",       /* 104 = bind */
-    "setsockopt", /* 105 = setsockopt */
-    "listen",     /* 106 = listen */
-#else
-    "#104", /* 104 = */
-    "#105", /* 105 = */
-    "#106", /* 106 = */
-#endif /* SOCKETS */
-    "#107",       /* 107 = old vtimes */
-    "#108",       /* 108 = old sigvec */
-    "#109",       /* 109 = old sigblock */
-    "#110",       /* 110 = old sigsetmask */
-    "sigsuspend", /* 111 = sigsuspend */
-    "#112",       /* 112 = old sigstack */
-#if SOCKETS
-    "#113", /* 113 = old recvmsg */
-    "#114", /* 114 = old sendmsg */
-#else
-    "#113", /* 113 = */
-    "#114", /* 114 = */
-#endif /* SOCKETS */
-    "#115",         /* 115 = old vtrace */
-    "gettimeofday", /* 116 = gettimeofday */
-    "getrusage",    /* 117 = getrusage */
-#if SOCKETS
-    "getsockopt", /* 118 = getsockopt */
-#else
-    "#118", /* 118 = */
-#endif /* SOCKETS */
-    "#119",         /* 119 = old resuba */
-    "readv",        /* 120 = readv */
-    "writev",       /* 121 = writev */
-    "settimeofday", /* 122 = settimeofday */
-    "fchown",       /* 123 = fchown */
-    "fchmod",       /* 124 = fchmod */
-    "#125",         /* 125 = old recvfrom */
-    "setreuid",     /* 126 = setreuid */
-    "setregid",     /* 127 = setregid */
-    "rename",       /* 128 = rename */
-    "#129",         /* 129 = old truncate */
-    "#130",         /* 130 = old ftruncate */
-    "flock",        /* 131 = flock */
-    "mkfifo",       /* 132 = mkfifo */
-#if SOCKETS
-    "sendto",     /* 133 = sendto */
-    "shutdown",   /* 134 = shutdown */
-    "socketpair", /* 135 = socketpair */
-#else
-    "#133", /* 133 = */
-    "#134", /* 134 = */
-    "#135", /* 135 = */
-#endif /* SOCKETS */
-    "mkdir",       /* 136 = mkdir */
-    "rmdir",       /* 137 = rmdir */
-    "utimes",      /* 138 = utimes */
-    "futimes",     /* 139 = futimes */
-    "adjtime",     /* 140 = adjtime */
-    "#141",        /* 141 = old getpeername */
-    "gethostuuid", /* 142 = gethostuuid */
-    "#143",        /* 143 = old sethostid */
-    "#144",        /* 144 = old getrlimit */
-    "#145",        /* 145 = old setrlimit */
-    "#146",        /* 146 = old killpg */
-    "setsid",      /* 147 = setsid */
-    "#148",        /* 148 = old setquota */
-    "#149",        /* 149 = old qquota */
-    "#150",        /* 150 = old getsockname */
-    "getpgid",     /* 151 = getpgid */
-    "setprivexec", /* 152 = setprivexec */
-    "pread",       /* 153 = pread */
-    "pwrite",      /* 154 = pwrite */
-#if NFSSERVER
-    "nfssvc", /* 155 = nfssvc */
-#else
-    "#155", /* 155 = */
-#endif
-    "#156",    /* 156 = old getdirentries */
-    "statfs",  /* 157 = statfs */
-    "fstatfs", /* 158 = fstatfs */
-    "unmount", /* 159 = unmount */
-    "#160",    /* 160 = old async_daemon */
-#if NFSSERVER
-    "getfh", /* 161 = getfh */
-#else
-    "#161", /* 161 = */
-#endif
-    "#162",                /* 162 = old getdomainname */
-    "#163",                /* 163 = old setdomainname */
-    "#164",                /* 164 = */
-    "quotactl",            /* 165 = quotactl */
-    "#166",                /* 166 = old exportfs */
-    "mount",               /* 167 = mount */
-    "#168",                /* 168 = old ustat */
-    "csops",               /* 169 = csops */
-    "csops_audittoken",    /* 170 = csops_audittoken */
-    "#171",                /* 171 = old wait3 */
-    "#172",                /* 172 = old rpause */
-    "waitid",              /* 173 = waitid */
-    "#174",                /* 174 = old getdents */
-    "#175",                /* 175 = old gc_control */
-    "#176",                /* 176 = old add_profil */
-    "kdebug_typefilter",   /* 177 = kdebug_typefilter */
-    "kdebug_trace_string", /* 178 = kdebug_trace_string */
-    "kdebug_trace64",      /* 179 = kdebug_trace64 */
-    "kdebug_trace",        /* 180 = kdebug_trace */
-    "setgid",              /* 181 = setgid */
-    "setegid",             /* 182 = setegid */
-    "seteuid",             /* 183 = seteuid */
-    "sigreturn",           /* 184 = sigreturn */
-    "#185",                /* 185 = old chud */
-    "thread_selfcounts",   /* 186 = thread_selfcounts */
-    "fdatasync",           /* 187 = fdatasync */
-    "stat",                /* 188 = stat */
-    "fstat",               /* 189 = fstat */
-    "lstat",               /* 190 = lstat */
-    "pathconf",            /* 191 = pathconf */
-    "fpathconf",           /* 192 = fpathconf */
-    "#193",                /* 193 = old getfsstat */
-    "getrlimit",           /* 194 = getrlimit */
-    "setrlimit",           /* 195 = setrlimit */
-    "getdirentries",       /* 196 = getdirentries */
-    "mmap",                /* 197 = mmap */
-    "#198",                /* 198 = old __syscall */
-    "lseek",               /* 199 = lseek */
-    "truncate",            /* 200 = truncate */
-    "ftruncate",           /* 201 = ftruncate */
-    "sysctl",              /* 202 = sysctl */
-    "mlock",               /* 203 = mlock */
-    "munlock",             /* 204 = munlock */
-    "undelete",            /* 205 = undelete */
-    "#206",                /* 206 = old ATsocket */
-    "#207",                /* 207 = old ATgetmsg */
-    "#208",                /* 208 = old ATputmsg */
-    "#209",                /* 209 = old ATsndreq */
-    "#210",                /* 210 = old ATsndrsp */
-    "#211",                /* 211 = old ATgetreq */
-    "#212",                /* 212 = old ATgetrsp */
-    "#213",                /* 213 = Reserved for AppleTalk */
-    "#214",                /* 214 = */
-    "#215",                /* 215 = */
-    "open_dprotected_np",  /* 216 = open_dprotected_np */
-    "fsgetpath_ext",       /* 217 = fsgetpath_ext */
-    "#218",                /* 218 = old lstatv */
-    "#219",                /* 219 = old fstatv */
-    "getattrlist",         /* 220 = getattrlist */
-    "setattrlist",         /* 221 = setattrlist */
-    "getdirentriesattr",   /* 222 = getdirentriesattr */
-    "exchangedata",        /* 223 = exchangedata */
-    "#224",                /* 224 = old checkuseraccess or fsgetpath */
-    "searchfs",            /* 225 = searchfs */
-    "delete",              /* 226 = delete private delete ( Carbon semantics ) */
-    "copyfile",            /* 227 = copyfile */
-    "fgetattrlist",        /* 228 = fgetattrlist */
-    "fsetattrlist",        /* 229 = fsetattrlist */
-    "poll",                /* 230 = poll */
-    "watchevent",          /* 231 = watchevent */
-    "waitevent",           /* 232 = waitevent */
-    "modwatch",            /* 233 = modwatch */
-    "getxattr",            /* 234 = getxattr */
-    "fgetxattr",           /* 235 = fgetxattr */
-    "setxattr",            /* 236 = setxattr */
-    "fsetxattr",           /* 237 = fsetxattr */
-    "removexattr",         /* 238 = removexattr */
-    "fremovexattr",        /* 239 = fremovexattr */
-    "listxattr",           /* 240 = listxattr */
-    "flistxattr",          /* 241 = flistxattr */
-    "fsctl",               /* 242 = fsctl */
-    "initgroups",          /* 243 = initgroups */
-    "posix_spawn",         /* 244 = posix_spawn */
-    "ffsctl",              /* 245 = ffsctl */
-    "#246",                /* 246 = */
-#if NFSCLIENT
-    "nfsclnt", /* 247 = nfsclnt */
-#else
-    "#247", /* 247 = */
-#endif
-#if NFSSERVER
-    "fhopen", /* 248 = fhopen */
-#else
-    "#248", /* 248 = */
-#endif
-    "#249",     /* 249 = */
-    "minherit", /* 250 = minherit */
-#if SYSV_SEM
-    "semsys", /* 251 = semsys */
-#else
-    "#251", /* 251 = */
-#endif
-#if SYSV_MSG
-    "msgsys", /* 252 = msgsys */
-#else
-    "#252", /* 252 = */
-#endif
-#if SYSV_SHM
-    "shmsys", /* 253 = shmsys */
-#else
-    "#253", /* 253 = */
-#endif
-#if SYSV_SEM
-    "semctl", /* 254 = semctl */
-    "semget", /* 255 = semget */
-    "semop",  /* 256 = semop */
-    "#257",   /* 257 = old semconfig */
-#else
-    "#254", /* 254 = */
-    "#255", /* 255 = */
-    "#256", /* 256 = */
-    "#257", /* 257 = */
-#endif
-#if SYSV_MSG
-    "msgctl", /* 258 = msgctl */
-    "msgget", /* 259 = msgget */
-    "msgsnd", /* 260 = msgsnd */
-    "msgrcv", /* 261 = msgrcv */
-#else
-    "#258", /* 258 = */
-    "#259", /* 259 = */
-    "#260", /* 260 = */
-    "#261", /* 261 = */
-#endif
-#if SYSV_SHM
-    "shmat",  /* 262 = shmat */
-    "shmctl", /* 263 = shmctl */
-    "shmdt",  /* 264 = shmdt */
-    "shmget", /* 265 = shmget */
-#else
-    "#262", /* 262 = */
-    "#263", /* 263 = */
-    "#264", /* 264 = */
-    "#265", /* 265 = */
-#endif
-    "shm_open",        /* 266 = shm_open */
-    "shm_unlink",      /* 267 = shm_unlink */
-    "sem_open",        /* 268 = sem_open */
-    "sem_close",       /* 269 = sem_close */
-    "sem_unlink",      /* 270 = sem_unlink */
-    "sem_wait",        /* 271 = sem_wait */
-    "sem_trywait",     /* 272 = sem_trywait */
-    "sem_post",        /* 273 = sem_post */
-    "sysctlbyname",    /* 274 = sysctlbyname */
-    "#275",            /* 275 = old sem_init */
-    "#276",            /* 276 = old sem_destroy */
-    "open_extended",   /* 277 = open_extended */
-    "umask_extended",  /* 278 = umask_extended */
-    "stat_extended",   /* 279 = stat_extended */
-    "lstat_extended",  /* 280 = lstat_extended */
-    "fstat_extended",  /* 281 = fstat_extended */
-    "chmod_extended",  /* 282 = chmod_extended */
-    "fchmod_extended", /* 283 = fchmod_extended */
-    "access_extended", /* 284 = access_extended */
-    "settid",          /* 285 = settid */
-    "gettid",          /* 286 = gettid */
-    "setsgroups",      /* 287 = setsgroups */
-    "getsgroups",      /* 288 = getsgroups */
-    "setwgroups",      /* 289 = setwgroups */
-    "getwgroups",      /* 290 = getwgroups */
-    "mkfifo_extended", /* 291 = mkfifo_extended */
-    "mkdir_extended",  /* 292 = mkdir_extended */
-#if CONFIG_EXT_RESOLVER
-    "identitysvc", /* 293 = identitysvc */
-#else
-    "#293", /* 293 = */
-#endif
-    "shared_region_check_np", /* 294 = shared_region_check_np */
-    "#295",                   /* 295 = old shared_region_map_np */
-    "vm_pressure_monitor",    /* 296 = vm_pressure_monitor */
-#if PSYNCH
-    "psynch_rw_longrdlock",  /* 297 = psynch_rw_longrdlock */
-    "psynch_rw_yieldwrlock", /* 298 = psynch_rw_yieldwrlock */
-    "psynch_rw_downgrade",   /* 299 = psynch_rw_downgrade */
-    "psynch_rw_upgrade",     /* 300 = psynch_rw_upgrade */
-    "psynch_mutexwait",      /* 301 = psynch_mutexwait */
-    "psynch_mutexdrop",      /* 302 = psynch_mutexdrop */
-    "psynch_cvbroad",        /* 303 = psynch_cvbroad */
-    "psynch_cvsignal",       /* 304 = psynch_cvsignal */
-    "psynch_cvwait",         /* 305 = psynch_cvwait */
-    "psynch_rw_rdlock",      /* 306 = psynch_rw_rdlock */
-    "psynch_rw_wrlock",      /* 307 = psynch_rw_wrlock */
-    "psynch_rw_unlock",      /* 308 = psynch_rw_unlock */
-    "psynch_rw_unlock2",     /* 309 = psynch_rw_unlock2 */
-#else
-    "#297", /* 297 = old reset_shared_file */
-    "#298", /* 298 = old new_system_shared_regions */
-    "#299", /* 299 = old shared_region_map_file_np */
-    "#300", /* 300 = old shared_region_make_private_np */
-    "#301", /* 301 = */
-    "#302", /* 302 = */
-    "#303", /* 303 = */
-    "#304", /* 304 = */
-    "#305", /* 305 = */
-    "#306", /* 306 = */
-    "#307", /* 307 = */
-    "#308", /* 308 = */
-    "#309", /* 309 = */
-#endif
-    "getsid",          /* 310 = getsid */
-    "settid_with_pid", /* 311 = settid_with_pid */
-#if PSYNCH
-    "psynch_cvclrprepost", /* 312 = psynch_cvclrprepost */
-#else
-    "#312", /* 312 = old __pthread_cond_timedwait */
-#endif
-    "aio_fsync",              /* 313 = aio_fsync */
-    "aio_return",             /* 314 = aio_return */
-    "aio_suspend",            /* 315 = aio_suspend */
-    "aio_cancel",             /* 316 = aio_cancel */
-    "aio_error",              /* 317 = aio_error */
-    "aio_read",               /* 318 = aio_read */
-    "aio_write",              /* 319 = aio_write */
-    "lio_listio",             /* 320 = lio_listio */
-    "#321",                   /* 321 = old __pthread_cond_wait */
-    "iopolicysys",            /* 322 = iopolicysys */
-    "process_policy",         /* 323 = process_policy */
-    "mlockall",               /* 324 = mlockall */
-    "munlockall",             /* 325 = munlockall */
-    "#326",                   /* 326 = */
-    "issetugid",              /* 327 = issetugid */
-    "__pthread_kill",         /* 328 = __pthread_kill */
-    "__pthread_sigmask",      /* 329 = __pthread_sigmask */
-    "__sigwait",              /* 330 = __sigwait */
-    "__disable_threadsignal", /* 331 = __disable_threadsignal */
-    "__pthread_markcancel",   /* 332 = __pthread_markcancel */
-    "__pthread_canceled",     /* 333 = __pthread_canceled */
-    "__semwait_signal",       /* 334 = __semwait_signal */
-    "#335",                   /* 335 = old utrace */
-    "proc_info",              /* 336 = proc_info */
-#if SENDFILE
-    "sendfile", /* 337 = sendfile */
-#else /* !SENDFILE */
-    "#337", /* 337 = */
-#endif /* SENDFILE */
-    "stat64",           /* 338 = stat64 */
-    "fstat64",          /* 339 = fstat64 */
-    "lstat64",          /* 340 = lstat64 */
-    "stat64_extended",  /* 341 = stat64_extended */
-    "lstat64_extended", /* 342 = lstat64_extended */
-    "fstat64_extended", /* 343 = fstat64_extended */
-    "getdirentries64",  /* 344 = getdirentries64 */
-    "statfs64",         /* 345 = statfs64 */
-    "fstatfs64",        /* 346 = fstatfs64 */
-    "getfsstat64",      /* 347 = getfsstat64 */
-    "__pthread_chdir",  /* 348 = __pthread_chdir */
-    "__pthread_fchdir", /* 349 = __pthread_fchdir */
-    "audit",            /* 350 = audit */
-    "auditon",          /* 351 = auditon */
-    "#352",             /* 352 = */
-    "getauid",          /* 353 = getauid */
-    "setauid",          /* 354 = setauid */
-    "#355",             /* 355 = old getaudit */
-    "#356",             /* 356 = old setaudit */
-    "getaudit_addr",    /* 357 = getaudit_addr */
-    "setaudit_addr",    /* 358 = setaudit_addr */
-    "auditctl",         /* 359 = auditctl */
-#if CONFIG_WORKQUEUE
-    "bsdthread_create",    /* 360 = bsdthread_create */
-    "bsdthread_terminate", /* 361 = bsdthread_terminate */
-#else
-    "#360", /* 360 = */
-    "#361", /* 361 = */
-#endif /* CONFIG_WORKQUEUE */
-    "kqueue", /* 362 = kqueue */
-    "kevent", /* 363 = kevent */
-    "lchown", /* 364 = lchown */
-    "#365",   /* 365 = old stack_snapshot */
-#if CONFIG_WORKQUEUE
-    "bsdthread_register", /* 366 = bsdthread_register */
-    "workq_open",         /* 367 = workq_open */
-    "workq_kernreturn",   /* 368 = workq_kernreturn */
-#else
-    "#366", /* 366 = */
-    "#367", /* 367 = */
-    "#368", /* 368 = */
-#endif /* CONFIG_WORKQUEUE */
-    "kevent64", /* 369 = kevent64 */
-#if OLD_SEMWAIT_SIGNAL
-    "__old_semwait_signal",          /* 370 = __old_semwait_signal */
-    "__old_semwait_signal_nocancel", /* 371 = __old_semwait_signal_nocancel */
-#else
-    "#370", /* 370 = old __semwait_signal */
-    "#371", /* 371 = old __semwait_signal */
-#endif
-    "thread_selfid", /* 372 = thread_selfid */
-    "ledger",        /* 373 = ledger */
-    "kevent_qos",    /* 374 = kevent_qos */
-    "kevent_id",     /* 375 = kevent_id */
-    "#376",          /* 376 = */
-    "#377",          /* 377 = */
-    "#378",          /* 378 = */
-    "#379",          /* 379 = */
-    "__mac_execve",  /* 380 = __mac_execve */
-#if CONFIG_MACF
-    "__mac_syscall",  /* 381 = __mac_syscall */
-    "__mac_get_file", /* 382 = __mac_get_file */
-    "__mac_set_file", /* 383 = __mac_set_file */
-    "__mac_get_link", /* 384 = __mac_get_link */
-    "__mac_set_link", /* 385 = __mac_set_link */
-    "__mac_get_proc", /* 386 = __mac_get_proc */
-    "__mac_set_proc", /* 387 = __mac_set_proc */
-    "__mac_get_fd",   /* 388 = __mac_get_fd */
-    "__mac_set_fd",   /* 389 = __mac_set_fd */
-    "__mac_get_pid",  /* 390 = __mac_get_pid */
-#else
-    "#381", /* 381 = */
-    "#382", /* 382 = */
-    "#383", /* 383 = */
-    "#384", /* 384 = */
-    "#385", /* 385 = */
-    "#386", /* 386 = */
-    "#387", /* 387 = */
-    "#388", /* 388 = */
-    "#389", /* 389 = */
-    "#390", /* 390 = */
-#endif
-    "#391",             /* 391 = */
-    "#392",             /* 392 = */
-    "#393",             /* 393 = */
-    "pselect",          /* 394 = pselect */
-    "pselect_nocancel", /* 395 = pselect_nocancel */
-    "read_nocancel",    /* 396 = read_nocancel */
-    "write_nocancel",   /* 397 = write_nocancel */
-    "open_nocancel",    /* 398 = open_nocancel */
-    "close_nocancel",   /* 399 = close_nocancel */
-    "wait4_nocancel",   /* 400 = wait4_nocancel */
-#if SOCKETS
-    "recvmsg_nocancel",  /* 401 = recvmsg_nocancel */
-    "sendmsg_nocancel",  /* 402 = sendmsg_nocancel */
-    "recvfrom_nocancel", /* 403 = recvfrom_nocancel */
-    "accept_nocancel",   /* 404 = accept_nocancel */
-#else
-    "#401", /* 401 = */
-    "#402", /* 402 = */
-    "#403", /* 403 = */
-    "#404", /* 404 = */
-#endif /* SOCKETS */
-    "msync_nocancel",  /* 405 = msync_nocancel */
-    "fcntl_nocancel",  /* 406 = fcntl_nocancel */
-    "select_nocancel", /* 407 = select_nocancel */
-    "fsync_nocancel",  /* 408 = fsync_nocancel */
-#if SOCKETS
-    "connect_nocancel", /* 409 = connect_nocancel */
-#else
-    "#409", /* 409 = */
-#endif /* SOCKETS */
-    "sigsuspend_nocancel", /* 410 = sigsuspend_nocancel */
-    "readv_nocancel",      /* 411 = readv_nocancel */
-    "writev_nocancel",     /* 412 = writev_nocancel */
-#if SOCKETS
-    "sendto_nocancel", /* 413 = sendto_nocancel */
-#else
-    "#413", /* 413 = */
-#endif /* SOCKETS */
-    "pread_nocancel",  /* 414 = pread_nocancel */
-    "pwrite_nocancel", /* 415 = pwrite_nocancel */
-    "waitid_nocancel", /* 416 = waitid_nocancel */
-    "poll_nocancel",   /* 417 = poll_nocancel */
-#if SYSV_MSG
-    "msgsnd_nocancel", /* 418 = msgsnd_nocancel */
-    "msgrcv_nocancel", /* 419 = msgrcv_nocancel */
-#else
-    "#418", /* 418 = */
-    "#419", /* 419 = */
-#endif
-    "sem_wait_nocancel",         /* 420 = sem_wait_nocancel */
-    "aio_suspend_nocancel",      /* 421 = aio_suspend_nocancel */
-    "__sigwait_nocancel",        /* 422 = __sigwait_nocancel */
-    "__semwait_signal_nocancel", /* 423 = __semwait_signal_nocancel */
-    "__mac_mount",               /* 424 = __mac_mount */
-#if CONFIG_MACF
-    "__mac_get_mount", /* 425 = __mac_get_mount */
-#else
-    "#425", /* 425 = */
-#endif
-    "__mac_getfsstat",    /* 426 = __mac_getfsstat */
-    "fsgetpath",          /* 427 = fsgetpath private fsgetpath ( File Manager SPI ) */
-    "audit_session_self", /* 428 = audit_session_self */
-    "audit_session_join", /* 429 = audit_session_join */
-    "fileport_makeport",  /* 430 = fileport_makeport */
-    "fileport_makefd",    /* 431 = fileport_makefd */
-    "audit_session_port", /* 432 = audit_session_port */
-    "pid_suspend",        /* 433 = pid_suspend */
-    "pid_resume",         /* 434 = pid_resume */
-#if CONFIG_EMBEDDED
-    "pid_hibernate", /* 435 = pid_hibernate */
-#else
-    "#435", /* 435 = */
-#endif
-#if SOCKETS
-    "pid_shutdown_sockets", /* 436 = pid_shutdown_sockets */
-#else
-    "#436", /* 436 = */
-#endif
-    "#437",                           /* 437 = old shared_region_slide_np */
-    "shared_region_map_and_slide_np", /* 438 = shared_region_map_and_slide_np */
-    "kas_info",                       /* 439 = kas_info */
-#if CONFIG_MEMORYSTATUS
-    "memorystatus_control", /* 440 = memorystatus_control */
-#else
-    "#440", /* 440 = */
-#endif
-    "guarded_open_np",     /* 441 = guarded_open_np */
-    "guarded_close_np",    /* 442 = guarded_close_np */
-    "guarded_kqueue_np",   /* 443 = guarded_kqueue_np */
-    "change_fdguard_np",   /* 444 = change_fdguard_np */
-    "usrctl",              /* 445 = usrctl */
-    "proc_rlimit_control", /* 446 = proc_rlimit_control */
-#if SOCKETS
-    "connectx",        /* 447 = connectx */
-    "disconnectx",     /* 448 = disconnectx */
-    "peeloff",         /* 449 = peeloff */
-    "socket_delegate", /* 450 = socket_delegate */
-#else
-    "#447", /* 447 = */
-    "#448", /* 448 = */
-    "#449", /* 449 = */
-    "#450", /* 450 = */
-#endif /* SOCKETS */
-    "telemetry", /* 451 = telemetry */
-#if CONFIG_PROC_UUID_POLICY
-    "proc_uuid_policy", /* 452 = proc_uuid_policy */
-#else
-    "#452", /* 452 = */
-#endif
-#if CONFIG_MEMORYSTATUS
-    "memorystatus_get_level", /* 453 = memorystatus_get_level */
-#else
-    "#453", /* 453 = */
-#endif
-    "system_override", /* 454 = system_override */
-    "vfs_purge",       /* 455 = vfs_purge */
-    "sfi_ctl",         /* 456 = sfi_ctl */
-    "sfi_pidctl",      /* 457 = sfi_pidctl */
-#if CONFIG_COALITIONS
-    "coalition",      /* 458 = coalition */
-    "coalition_info", /* 459 = coalition_info */
-#else
-    "#458", /* 458 = */
-    "#459", /* 459 = */
-#endif /* COALITIONS */
-#if NECP
-    "necp_match_policy", /* 460 = necp_match_policy */
-#else
-    "#460", /* 460 = */
-#endif /* NECP */
-    "getattrlistbulk", /* 461 = getattrlistbulk */
-    "clonefileat",     /* 462 = clonefileat */
-    "openat",          /* 463 = openat */
-    "openat_nocancel", /* 464 = openat_nocancel */
-    "renameat",        /* 465 = renameat */
-    "faccessat",       /* 466 = faccessat */
-    "fchmodat",        /* 467 = fchmodat */
-    "fchownat",        /* 468 = fchownat */
-    "fstatat",         /* 469 = fstatat */
-    "fstatat64",       /* 470 = fstatat64 */
-    "linkat",          /* 471 = linkat */
-    "unlinkat",        /* 472 = unlinkat */
-    "readlinkat",      /* 473 = readlinkat */
-    "symlinkat",       /* 474 = symlinkat */
-    "mkdirat",         /* 475 = mkdirat */
-    "getattrlistat",   /* 476 = getattrlistat */
-    "proc_trace_log",  /* 477 = proc_trace_log */
-    "bsdthread_ctl",   /* 478 = bsdthread_ctl */
-    "openbyid_np",     /* 479 = openbyid_np */
-#if SOCKETS
-    "recvmsg_x", /* 480 = recvmsg_x */
-    "sendmsg_x", /* 481 = sendmsg_x */
-#else
-    "#480", /* 480 = */
-    "#481", /* 481 = */
-#endif /* SOCKETS */
-    "thread_selfusage", /* 482 = thread_selfusage */
-#if CONFIG_CSR
-    "csrctl", /* 483 = csrctl */
-#else
-    "#483", /* 483 = */
-#endif /* CSR */
-    "guarded_open_dprotected_np", /* 484 = guarded_open_dprotected_np */
-    "guarded_write_np",           /* 485 = guarded_write_np */
-    "guarded_pwrite_np",          /* 486 = guarded_pwrite_np */
-    "guarded_writev_np",          /* 487 = guarded_writev_np */
-    "renameatx_np",               /* 488 = renameatx_np */
-#if CONFIG_CODE_DECRYPTION
-    "mremap_encrypted", /* 489 = mremap_encrypted */
-#else
-    "#489", /* 489 = */
-#endif
-#if NETWORKING
-    "netagent_trigger", /* 490 = netagent_trigger */
-#else
-    "#490", /* 490 = */
-#endif /* NETWORKING */
-    "stack_snapshot_with_config", /* 491 = stack_snapshot_with_config */
-#if CONFIG_TELEMETRY
-    "microstackshot", /* 492 = microstackshot */
-#else
-    "#492", /* 492 = */
-#endif /* CONFIG_TELEMETRY */
-#if PGO
-    "grab_pgo_data", /* 493 = grab_pgo_data */
-#else
-    "#493", /* 493 = */
-#endif
-#if CONFIG_PERSONAS
-    "persona", /* 494 = persona */
-#else
-    "#494", /* 494 = */
-#endif
-    "#495",              /* 495 = */
-    "#496",              /* 496 = */
-    "#497",              /* 497 = */
-    "#498",              /* 498 = */
-    "work_interval_ctl", /* 499 = work_interval_ctl */
-    "getentropy",        /* 500 = getentropy */
-#if NECP
-    "necp_open",          /* 501 = necp_open */
-    "necp_client_action", /* 502 = necp_client_action */
-#else
-    "#501", /* 501 = */
-    "#502", /* 502 = */
-#endif /* NECP */
-    "#503",                   /* 503 = */
-    "#504",                   /* 504 = */
-    "#505",                   /* 505 = */
-    "#506",                   /* 506 = */
-    "#507",                   /* 507 = */
-    "#508",                   /* 508 = */
-    "#509",                   /* 509 = */
-    "#510",                   /* 510 = */
-    "#511",                   /* 511 = */
-    "#512",                   /* 512 = */
-    "#513",                   /* 513 = */
-    "#514",                   /* 514 = */
-    "ulock_wait",             /* 515 = ulock_wait */
-    "ulock_wake",             /* 516 = ulock_wake */
-    "fclonefileat",           /* 517 = fclonefileat */
-    "fs_snapshot",            /* 518 = fs_snapshot */
-    "#519",                   /* 519 = */
-    "terminate_with_payload", /* 520 = terminate_with_payload */
-    "abort_with_payload",     /* 521 = abort_with_payload */
-#if NECP
-    "necp_session_open",   /* 522 = necp_session_open */
-    "necp_session_action", /* 523 = necp_session_action */
-#else /* NECP */
-    "#522", /* 522 = */
-    "#523", /* 523 = */
-#endif /* NECP */
-    "setattrlistat",         /* 524 = setattrlistat */
-    "net_qos_guideline",     /* 525 = net_qos_guideline */
-    "fmount",                /* 526 = fmount */
-    "ntp_adjtime",           /* 527 = ntp_adjtime */
-    "ntp_gettime",           /* 528 = ntp_gettime */
-    "os_fault_with_payload", /* 529 = os_fault_with_payload */
-#if CONFIG_WORKQUEUE
-    "kqueue_workloop_ctl", /* 530 = kqueue_workloop_ctl */
-#else
-    "#530", /* 530 = */
-#endif // CONFIG_WORKQUEUE
-    "__mach_bridge_remote_time", /* 531 = __mach_bridge_remote_time */
-#if CONFIG_COALITIONS
-    "coalition_ledger", /* 532 = coalition_ledger */
-#else
-    "#532", /* 532 = */
-#endif // CONFIG_COALITIONS
-    "log_data",                      /* 533 = log_data */
-    "memorystatus_available_memory", /* 534 = memorystatus_available_memory */
-};
\ No newline at end of file
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/deprecated/mach_system_call.cc b/loader/dobby/builtin-plugin/SupervisorCallMonitor/deprecated/mach_system_call.cc
deleted file mode 100644
index d8243da0..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/deprecated/mach_system_call.cc
+++ /dev/null
@@ -1,82 +0,0 @@
-#include "dobby_internal.h"
-
-#include "MachUtility.h"
-
-#include "PlatformUtil/ProcessRuntimeUtility.h"
-
-#include <unistd.h>
-#include <stdlib.h>
-
-#include <iostream>
-
-#include "misc-helper/async_logger.h"
-
-extern char *mach_msg_to_str(mach_msg_header_t *msg);
-
-#if 0
-typeof(mach_msg) *orig_mach_msg = NULL;
-
-mach_msg_return_t fake_mach_msg(mach_msg_header_t *msg, mach_msg_option_t option, mach_msg_size_t send_size,
-                                mach_msg_size_t rcv_size, mach_port_name_t rcv_name, mach_msg_timeout_t timeout,
-                                mach_port_name_t notify) {
-  char buffer[256] = {0};
-  char *mach_msg_name = mach_msg_to_str(msg);
-  if(mach_msg_name) {
-    sprintf(buffer, "[%d][mach_msg] %s\n",i++, mach_msg_name);
-    async_logger_print(buffer);
-  }
-#if 0
-  {
-    write(STDOUT_FILENO, buffer, strlen(buffer) + 1);
-  }
-#endif
-  return orig_mach_msg(msg, option, send_size, rcv_size, rcv_name, timeout, notify);
-}
-
-void mach_system_call_monitor() {
-  void *mach_msg_ptr = (void *)DobbySymbolResolver(NULL, "mach_msg");
-  log_set_level(1);
-  DobbyHook(mach_msg_ptr, (void *)fake_mach_msg, (void **)&orig_mach_msg);
-}
-#endif
-
-static addr_t getCallFirstArg(RegisterContext *ctx) {
-  addr_t result;
-#if defined(_M_X64) || defined(__x86_64__)
-#if defined(_WIN32)
-  result = ctx->general.regs.rcx;
-#else
-  result = ctx->general.regs.rdi;
-#endif
-#elif defined(__arm64__) || defined(__aarch64__)
-  result = ctx->general.regs.x0;
-#elif defined(__arm__)
-  result = ctx->general.regs.r0;
-#else
-#error "Not Support Architecture."
-#endif
-  return result;
-}
-
-static void common_handler(RegisterContext *ctx, const HookEntryInfo *info) {
-  addr_t caller = get_caller_from_main_binary(ctx);
-  if (caller == 0)
-    return;
-
-  char buffer[256] = {0};
-  mach_msg_header_t *msg = (typeof(msg))getCallFirstArg(ctx);
-  char *mach_msg_name = mach_msg_to_str(msg);
-  if (mach_msg_name) {
-    sprintf(buffer, "[mach msg %p] %s\n", caller, mach_msg_name);
-  } else {
-    buffer[0] = 0;
-  }
-  if (buffer[0])
-    async_logger_print(buffer);
-}
-
-void mach_system_call_monitor() {
-  void *mach_msg_ptr = (void *)DobbySymbolResolver(NULL, "mach_msg");
-  log_set_level(1);
-  DobbyInstrument(mach_msg_ptr, common_handler);
-}
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/deprecated/system_call.cc b/loader/dobby/builtin-plugin/SupervisorCallMonitor/deprecated/system_call.cc
deleted file mode 100644
index 22f05d9a..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/deprecated/system_call.cc
+++ /dev/null
@@ -1,119 +0,0 @@
-#include "dobby_internal.h"
-
-#include "PlatformUtil/ProcessRuntimeUtility.h"
-
-#include <iostream>
-
-#include <unistd.h>
-#include <stdlib.h>
-
-#include <sys/syscall.h>
-
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-
-#include "misc-helper/async_logger.h"
-
-static addr_t getCallFirstArg(RegisterContext *ctx) {
-  addr_t result;
-#if defined(_M_X64) || defined(__x86_64__)
-#if defined(_WIN32)
-  result = ctx->general.regs.rcx;
-#else
-  result = ctx->general.regs.rdi;
-#endif
-#elif defined(__arm64__) || defined(__aarch64__)
-  result = ctx->general.regs.x0;
-#elif defined(__arm__)
-  result = ctx->general.regs.r0;
-#else
-#error "Not Support Architecture."
-#endif
-  return result;
-}
-
-extern const char *syscall_num_to_str(int num);
-
-extern const char *mach_syscall_num_to_str(int num);
-
-extern char *mach_msg_to_str(mach_msg_header_t *msg);
-
-static void common_handler(RegisterContext *ctx, const HookEntryInfo *info) {
-  char buffer[256] = {0};
-  int syscall_rum = ctx->general.regs.x16;
-  if (syscall_rum == 0) {
-    syscall_rum = (int)getCallFirstArg(ctx);
-    sprintf(buffer, "[syscall svc-%d] %s\n", syscall_rum, syscall_num_to_str(syscall_rum));
-  } else if (syscall_rum == -31) {
-    // mach_msg_trap
-    mach_msg_header_t *msg = (typeof(msg))getCallFirstArg(ctx);
-    char *mach_msg_name = mach_msg_to_str(msg);
-    if (mach_msg_name) {
-      sprintf(buffer, "[mach msg svc] %s\n", mach_msg_name);
-    } else {
-      buffer[0] = 0;
-    }
-  } else if (syscall_rum > 0) {
-    sprintf(buffer, "[svc-%d] %s\n", syscall_rum, syscall_num_to_str(syscall_rum));
-  } else {
-    sprintf(buffer, "[mach svc-%d] %s\n", syscall_rum, mach_syscall_num_to_str(syscall_rum));
-  }
-  async_logger_print(buffer);
-}
-
-typedef int32_t arm64_instr_t;
-
-void monitor_libsystem_kernel_dylib() {
-  auto libsystem_c = ProcessRuntimeUtility::GetProcessModule("libsystem_kernel.dylib");
-  addr_t libsystem_c_header = (addr_t)libsystem_c.load_address;
-  auto text_section =
-      mach_kit::macho_get_section_by_name_64((struct mach_header_64 *)libsystem_c_header, "__TEXT", "__text");
-
-  addr_t shared_cache_load_addr = (addr_t)mach_kit::macho_get_shared_cache();
-  addr_t insn_addr = shared_cache_load_addr + (addr_t)text_section->offset;
-  addr_t insn_addr_end = insn_addr + text_section->size;
-
-  addr_t write_svc_addr = (addr_t)DobbySymbolResolver("libsystem_kernel.dylib", "write");
-  write_svc_addr += 4;
-
-  addr_t __psynch_mutexwait_svc_addr = (addr_t)DobbySymbolResolver("libsystem_kernel.dylib", "__psynch_mutexwait");
-  __psynch_mutexwait_svc_addr += 4;
-
-  for (; insn_addr < insn_addr_end; insn_addr += sizeof(arm64_instr_t)) {
-    if (*(arm64_instr_t *)insn_addr == 0xd4001001) {
-      dobby_enable_near_branch_trampoline();
-      if (insn_addr == write_svc_addr)
-        continue;
-
-      if (insn_addr == __psynch_mutexwait_svc_addr)
-        continue;
-      DobbyInstrument((void *)insn_addr, common_handler);
-      LOG(2, "instrument svc at %p", insn_addr);
-    }
-  }
-}
-
-void monitor_main_binary() {
-  auto main = ProcessRuntimeUtility::GetProcessModuleMap()[0];
-  addr_t main_header = (addr_t)main.load_address;
-  auto text_section = mach_kit::macho_get_section_by_name_64((struct mach_header_64 *)main_header, "__TEXT", "__text");
-
-  addr_t insn_addr = main_header + (addr_t)text_section->offset;
-  addr_t insn_addr_end = insn_addr + text_section->size;
-
-  for (; insn_addr < insn_addr_end; insn_addr += sizeof(arm64_instr_t)) {
-    if (*(arm64_instr_t *)insn_addr == 0xd4001001) {
-      DobbyInstrument((void *)insn_addr, common_handler);
-      LOG(2, "instrument svc at %p", insn_addr);
-    }
-  }
-}
-
-void system_call_monitor() {
-#if 0
-  monitor_libsystem_kernel_dylib();
-#endif
-
-  monitor_main_binary();
-}
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/mach_system_call_log_handler.cc b/loader/dobby/builtin-plugin/SupervisorCallMonitor/mach_system_call_log_handler.cc
deleted file mode 100644
index fac21886..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/mach_system_call_log_handler.cc
+++ /dev/null
@@ -1,193 +0,0 @@
-#include "dobby_internal.h"
-
-#include <iostream>
-
-#include <unistd.h>
-#include <stdlib.h>
-#include <sys/syscall.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-#include <mach/mach.h>
-
-#include "misc-helper/async_logger.h"
-#include "PlatformUtil/ProcessRuntimeUtility.h"
-#include "SupervisorCallMonitor/misc_utility.h"
-#include "SupervisorCallMonitor/supervisor_call_monitor.h"
-
-#include "XnuInternal/syscall_sw.c"
-
-#include "XnuInternal/mach/clock_priv.h"
-#include "XnuInternal/mach/clock_reply.h"
-#include "XnuInternal/mach/clock.h"
-#include "XnuInternal/mach/exc.h"
-#include "XnuInternal/mach/host_priv.h"
-#include "XnuInternal/mach/host_security.h"
-#include "XnuInternal/mach/lock_set.h"
-#include "XnuInternal/mach/mach_host.h"
-#include "XnuInternal/mach/mach_port.h"
-#include "XnuInternal/mach/mach_vm.h"
-#include "XnuInternal/mach/mach_voucher.h"
-#include "XnuInternal/mach/memory_entry.h"
-#include "XnuInternal/mach/processor_set.h"
-#include "XnuInternal/mach/processor.h"
-#include "XnuInternal/mach/task.h"
-#include "XnuInternal/mach/thread_act.h"
-#include "XnuInternal/mach/vm_map.h"
-
-typedef struct {
-  char *mach_msg_name;
-  int mach_msg_id;
-} mach_msg_entry_t;
-
-// clang-format off
-mach_msg_entry_t mach_msg_array[] = {
-    subsystem_to_name_map_clock_priv,
-    subsystem_to_name_map_clock_reply,
-    subsystem_to_name_map_clock,
-    subsystem_to_name_map_exc,
-    subsystem_to_name_map_host_priv,
-    subsystem_to_name_map_host_security,
-    subsystem_to_name_map_lock_set,
-    subsystem_to_name_map_mach_host,
-    subsystem_to_name_map_mach_port,
-    subsystem_to_name_map_mach_vm,
-    subsystem_to_name_map_mach_voucher,
-    subsystem_to_name_map_memory_entry,
-    subsystem_to_name_map_processor_set,
-    subsystem_to_name_map_processor,
-    subsystem_to_name_map_task,
-    subsystem_to_name_map_thread_act,
-    subsystem_to_name_map_vm_map,
-};
-// clang-format on
-
-#define PRIME_NUMBER 8387
-char *mach_msg_name_table[PRIME_NUMBER] = {0};
-static int hash_mach_msg_num_to_ndx(int mach_msg_num) {
-  return mach_msg_num % PRIME_NUMBER;
-}
-static void mach_msg_id_hash_table_init() {
-  static bool initialized = false;
-  if (initialized == true) {
-    return;
-  }
-  initialized = true;
-
-  int count = sizeof(mach_msg_array) / sizeof(mach_msg_array[0]);
-  for (size_t i = 0; i < count; i++) {
-    mach_msg_entry_t entry = mach_msg_array[i];
-    int ndx = hash_mach_msg_num_to_ndx(entry.mach_msg_id);
-    mach_msg_name_table[ndx] = entry.mach_msg_name;
-  }
-}
-
-const char *mach_syscall_num_to_str(int num) {
-  return mach_syscall_name_table[0 - num];
-}
-
-char *mach_msg_id_to_str(int msgh_id) {
-  int ndx = hash_mach_msg_num_to_ndx(msgh_id);
-  return mach_msg_name_table[ndx];
-}
-
-char *mach_msg_to_str(mach_msg_header_t *msg) {
-  static mach_port_t self_port = MACH_PORT_NULL;
-
-  if (self_port == MACH_PORT_NULL) {
-    self_port = mach_task_self();
-  }
-
-  if (msg->msgh_remote_port == self_port) {
-    return mach_msg_id_to_str(msg->msgh_id);
-  }
-  return NULL;
-}
-
-static addr_t getCallFirstArg(RegisterContext *ctx) {
-  addr_t result;
-#if defined(_M_X64) || defined(__x86_64__)
-#if defined(_WIN32)
-  result = ctx->general.regs.rcx;
-#else
-  result = ctx->general.regs.rdi;
-#endif
-#elif defined(__arm64__) || defined(__aarch64__)
-  result = ctx->general.regs.x0;
-#elif defined(__arm__)
-  result = ctx->general.regs.r0;
-#else
-#error "Not Support Architecture."
-#endif
-  return result;
-}
-
-static addr_t getRealLr(RegisterContext *ctx) {
-  addr_t closure_trampoline_reserved_stack = ctx->sp - sizeof(addr_t);
-  return *(addr_t *)closure_trampoline_reserved_stack;
-}
-
-static addr_t fast_get_caller_from_main_binary(RegisterContext *ctx) {
-  static addr_t text_section_start = 0, text_section_end = 0;
-  static addr_t slide = 0;
-  if (text_section_start == 0 || text_section_end == 0) {
-    auto main = ProcessRuntimeUtility::GetProcessModule("mobilex");
-    addr_t main_header = (addr_t)main.load_address;
-
-    auto text_segment = macho_kit_get_segment_by_name((mach_header_t *)main_header, "__TEXT");
-    slide = main_header - text_segment->vmaddr;
-
-    auto text_section = macho_kit_get_section_by_name((mach_header_t *)main_header, "__TEXT", "__text");
-    text_section_start = main_header + (addr_t)text_section->offset;
-    text_section_end = text_section_start + text_section->size;
-  }
-
-  if (ctx == NULL)
-    return 0;
-
-  addr_t lr = getRealLr(ctx);
-  if (lr > text_section_start && lr < text_section_end)
-    return lr - slide;
-
-#define MAX_STACK_ITERATE_LEVEL 8
-  addr_t fp = ctx->fp;
-  if (fp == 0)
-    return 0;
-  for (int i = 0; i < MAX_STACK_ITERATE_LEVEL; i++) {
-    addr_t lr = *(addr_t *)(fp + sizeof(addr_t));
-    if (lr > text_section_start && lr < text_section_end)
-      return lr - slide;
-    fp = *(addr_t *)fp;
-    if (fp == 0)
-      return 0;
-  }
-  return 0;
-}
-
-static void mach_syscall_log_handler(RegisterContext *ctx, const HookEntryInfo *info) {
-  addr_t caller = fast_get_caller_from_main_binary(ctx);
-  if (caller == 0)
-    return;
-
-  char buffer[256] = {0};
-  int syscall_rum = ctx->general.regs.x16;
-  if (syscall_rum == -31) {
-    // mach_msg_trap
-    mach_msg_header_t *msg = (typeof(msg))getCallFirstArg(ctx);
-    char *mach_msg_name = mach_msg_to_str(msg);
-    if (mach_msg_name) {
-      sprintf(buffer, "[mach msg svc] %s\n", mach_msg_name);
-    } else {
-      buffer[0] = 0;
-    }
-  } else if (syscall_rum < 0) {
-    sprintf(buffer, "[mach svc-%d] %s\n", syscall_rum, mach_syscall_num_to_str(syscall_rum));
-  }
-  async_logger_print(buffer);
-}
-
-void supervisor_call_monitor_register_mach_syscall_call_log_handler() {
-  mach_msg_id_hash_table_init();
-  fast_get_caller_from_main_binary(NULL);
-  supervisor_call_monitor_register_handler(mach_syscall_log_handler);
-}
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/misc_utility.cc b/loader/dobby/builtin-plugin/SupervisorCallMonitor/misc_utility.cc
deleted file mode 100644
index 2a0a05bc..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/misc_utility.cc
+++ /dev/null
@@ -1,44 +0,0 @@
-#include "misc_utility.h"
-
-#include <string.h>
-
-segment_command_t *macho_kit_get_segment_by_name(mach_header_t *header, const char *segname) {
-  segment_command_t *curr_seg_cmd = NULL;
-
-  curr_seg_cmd = (segment_command_t *)((addr_t)header + sizeof(mach_header_t));
-  for (int i = 0; i < header->ncmds; i++) {
-    if (curr_seg_cmd->cmd == LC_SEGMENT_ARCH_DEPENDENT) {
-      if (!strncmp(curr_seg_cmd->segname, segname, sizeof(curr_seg_cmd->segname))) {
-        break;
-      }
-    }
-    curr_seg_cmd = (segment_command_t *)((addr_t)curr_seg_cmd + curr_seg_cmd->cmdsize);
-  }
-
-  return curr_seg_cmd;
-}
-
-section_t *macho_kit_get_section_by_name(mach_header_t *header, const char *segname, const char *sectname) {
-  section_t *section = NULL;
-  segment_command_t *segment = NULL;
-
-  int i = 0;
-
-  segment = macho_kit_get_segment_by_name(header, segname);
-  if (!segment)
-    goto finish;
-
-  section = (section_t *)((addr_t)segment + sizeof(segment_command_t));
-  for (i = 0; i < segment->nsects; ++i) {
-    if (!strncmp(section->sectname, sectname, sizeof(section->sectname))) {
-      break;
-    }
-    section += 1;
-  }
-  if (i == segment->nsects) {
-    section = NULL;
-  }
-
-finish:
-  return section;
-}
\ No newline at end of file
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/misc_utility.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/misc_utility.h
deleted file mode 100644
index 1c356c03..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/misc_utility.h
+++ /dev/null
@@ -1,28 +0,0 @@
-#pragma once
-
-#include <stdint.h>
-typedef uintptr_t addr_t;
-
-#include <mach-o/dyld.h>
-#include <mach-o/loader.h>
-#include <mach-o/nlist.h>
-
-#if defined(__LP64__)
-typedef struct mach_header_64 mach_header_t;
-typedef struct segment_command_64 segment_command_t;
-typedef struct section_64 section_t;
-typedef struct nlist_64 nlist_t;
-#define LC_SEGMENT_ARCH_DEPENDENT LC_SEGMENT_64
-#else
-typedef struct mach_header mach_header_t;
-typedef struct segment_command segment_command_t;
-typedef struct section section_t;
-typedef struct nlist nlist_t;
-#define LC_SEGMENT_ARCH_DEPENDENT LC_SEGMENT
-#endif
-
-// get macho segment by segment name
-segment_command_t *macho_kit_get_segment_by_name(mach_header_t *mach_header, const char *segname);
-
-// get macho section by segment name and section name
-section_t *macho_kit_get_section_by_name(mach_header_t *mach_header, const char *segname, const char *sectname);
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/sensitive_api_monitor.cc b/loader/dobby/builtin-plugin/SupervisorCallMonitor/sensitive_api_monitor.cc
deleted file mode 100644
index 23a759bf..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/sensitive_api_monitor.cc
+++ /dev/null
@@ -1,95 +0,0 @@
-#include "dobby_internal.h"
-
-#include <sys/param.h>
-#include <mach/mach.h>
-#include <sys/syscall.h>
-
-#include "SupervisorCallMonitor/supervisor_call_monitor.h"
-#include "misc-helper/async_logger.h"
-
-#define PT_DENY_ATTACH 31
-
-static void sensitive_api_handler(RegisterContext *ctx, const HookEntryInfo *info) {
-  char buffer[256] = {0};
-  int syscall_rum = ctx->general.regs.x16;
-  if (syscall_rum == 0) {
-    syscall_rum = (int)ctx->general.x[0];
-    if (syscall_rum == SYS_ptrace) {
-      int request = ctx->general.x[1];
-      if (request == PT_DENY_ATTACH) {
-        ctx->general.x[1] = 0;
-        // LOG(2, "syscall svc ptrace deny");
-      }
-    }
-    if (syscall_rum == SYS_exit) {
-      // LOG(2, "syscall svc exit");
-    }
-  } else if (syscall_rum > 0) {
-    if (syscall_rum == SYS_ptrace) {
-      int request = ctx->general.x[0];
-      if (request == PT_DENY_ATTACH) {
-        ctx->general.x[0] = 0;
-        // LOG(2, "svc ptrace deny");
-      }
-    }
-    if (syscall_rum == SYS_exit) {
-      // LOG(2, "svc exit");
-    }
-  }
-  async_logger_print(buffer);
-}
-
-static int get_func_svc_offset(addr_t func_addr) {
-  typedef int32_t arm64_instr_t;
-  for (int i = 0; i < 8; i++) {
-    arm64_instr_t *insn = (arm64_instr_t *)func_addr + i;
-    if (*insn == 0xd4001001) {
-      return i * sizeof(arm64_instr_t);
-    }
-  }
-  return 0;
-}
-
-#include <sys/sysctl.h>
-__typeof(sysctl) *orig_sysctl;
-int fake_sysctl(int *name, u_int namelen, void *oldp, size_t *oldlenp, void *newp, size_t newlen) {
-  struct kinfo_proc *info = NULL;
-  int ret = orig_sysctl(name, namelen, oldp, oldlenp, newp, newlen);
-  if (name[0] == CTL_KERN && name[1] == KERN_PROC && name[2] == KERN_PROC_PID) {
-    info = (struct kinfo_proc *)oldp;
-    info->kp_proc.p_flag &= ~(P_TRACED);
-  }
-  return ret;
-}
-
-void supervisor_call_monitor_register_sensitive_api_handler() {
-  char *sensitive_func_array[] = {"ptrace", "exit"};
-  size_t count = sizeof(sensitive_func_array) / sizeof(char *);
-  for (size_t i = 0; i < count; i++) {
-
-    addr_t func_addr = 0;
-
-    char func_name[64] = {0};
-    sprintf(func_name, "__%s", sensitive_func_array[i]);
-    func_addr = (addr_t)DobbySymbolResolver("libsystem_kernel.dylib", func_name);
-    if (func_addr == 0) {
-      func_addr = (addr_t)DobbySymbolResolver("libsystem_kernel.dylib", sensitive_func_array[i]);
-    }
-    if (func_addr == 0) {
-      LOG(2, "not found func %s", sensitive_func_array[i]);
-      continue;
-    }
-    int func_svc_offset = get_func_svc_offset(func_addr);
-    if (func_svc_offset == 0) {
-      LOG(2, "not found svc %s", sensitive_func_array[i]);
-      continue;
-    }
-    addr_t func_svc_addr = func_addr + func_svc_offset;
-    supervisor_call_monitor_register_svc(func_svc_addr);
-  }
-
-  // ===============
-  DobbyHook((void *)sysctl, (void *)fake_sysctl, (void **)&orig_sysctl);
-
-  supervisor_call_monitor_register_handler(sensitive_api_handler);
-}
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/supervisor_call_monitor.cc b/loader/dobby/builtin-plugin/SupervisorCallMonitor/supervisor_call_monitor.cc
deleted file mode 100644
index d4b7d3e2..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/supervisor_call_monitor.cc
+++ /dev/null
@@ -1,138 +0,0 @@
-#include "SupervisorCallMonitor/misc_utility.h"
-#include "dobby_internal.h"
-#include "PlatformUtil/ProcessRuntimeUtility.h"
-
-#include "misc-helper/async_logger.h"
-
-#include <vector>
-std::vector<DBICallTy> *g_supervisor_call_handlers;
-
-static const char *fast_get_main_app_bundle_udid() {
-  static char *main_app_bundle_udid = NULL;
-  if (main_app_bundle_udid)
-    return main_app_bundle_udid;
-
-  auto main = ProcessRuntimeUtility::GetProcessModuleMap()[0];
-  char main_binary_path[2048] = {0};
-  if (realpath(main.path, main_binary_path) == NULL)
-    return NULL;
-
-  char *bundle_udid_ndx = main_binary_path + strlen("/private/var/containers/Bundle/Application/");
-  main_app_bundle_udid = (char *)malloc(36 + 1);
-  strncpy(main_app_bundle_udid, bundle_udid_ndx, 36);
-  main_app_bundle_udid[36] = 0;
-  return main_app_bundle_udid;
-}
-
-static void common_supervisor_call_monitor_handler(RegisterContext *ctx, const HookEntryInfo *info) {
-  if (g_supervisor_call_handlers == NULL) {
-    return;
-  }
-  for (auto handler : *g_supervisor_call_handlers) {
-    handler(ctx, info);
-  }
-}
-
-void supervisor_call_monitor_register_handler(DBICallTy handler) {
-  if (g_supervisor_call_handlers == NULL) {
-    g_supervisor_call_handlers = new std::vector<DBICallTy>();
-  }
-  g_supervisor_call_handlers->push_back(handler);
-}
-
-std::vector<addr_t> *g_svc_addr_array;
-
-void supervisor_call_monitor_register_svc(addr_t svc_addr) {
-  if (g_svc_addr_array == NULL) {
-    g_svc_addr_array = new std::vector<addr_t>();
-  }
-
-  if (g_svc_addr_array) {
-    auto iter = g_svc_addr_array->begin();
-    for (; iter != g_svc_addr_array->end(); iter++) {
-      if (*iter == svc_addr)
-        return;
-    }
-  }
-
-  g_svc_addr_array->push_back(svc_addr);
-  DobbyInstrument((void *)svc_addr, common_supervisor_call_monitor_handler);
-  DLOG(2, "register supervisor_call_monitor at %p", svc_addr);
-}
-
-void supervisor_call_monitor_register_image(void *header) {
-  auto text_section = macho_kit_get_section_by_name((mach_header_t *)header, "__TEXT", "__text");
-
-  addr_t insn_addr = (addr_t)header + (addr_t)text_section->offset;
-  addr_t insn_addr_end = insn_addr + text_section->size;
-
-  for (; insn_addr < insn_addr_end; insn_addr += sizeof(uint32_t)) {
-    if (*(uint32_t *)insn_addr == 0xd4001001) {
-      supervisor_call_monitor_register_svc((addr_t)insn_addr);
-    }
-  }
-}
-
-void supervisor_call_monitor_register_main_app() {
-  const char *main_bundle_udid = fast_get_main_app_bundle_udid();
-  auto module_map = ProcessRuntimeUtility::GetProcessModuleMap();
-  for (auto module : module_map) {
-    if (strstr(module.path, main_bundle_udid)) {
-      LOG(2, "[supervisor_call_monitor] %s", module.path);
-      supervisor_call_monitor_register_image((void *)module.load_address);
-    }
-  }
-}
-
-extern "C" int __shared_region_check_np(uint64_t *startaddress);
-
-struct dyld_cache_header *shared_cache_get_load_addr() {
-  static struct dyld_cache_header *shared_cache_load_addr = 0;
-  if (shared_cache_load_addr)
-    return shared_cache_load_addr;
-#if 0
-  if (syscall(294, &shared_cache_load_addr) == 0) {
-#else
-  // FIXME:
-  if (__shared_region_check_np((uint64_t *)&shared_cache_load_addr) != 0) {
-#endif
-  shared_cache_load_addr = 0;
-}
-return shared_cache_load_addr;
-}
-void supervisor_call_monitor_register_system_kernel() {
-  auto libsystem = ProcessRuntimeUtility::GetProcessModule("libsystem_kernel.dylib");
-  addr_t libsystem_header = (addr_t)libsystem.load_address;
-  auto text_section = macho_kit_get_section_by_name((mach_header_t *)libsystem_header, "__TEXT", "__text");
-
-  addr_t shared_cache_load_addr = (addr_t)shared_cache_get_load_addr();
-  addr_t insn_addr = shared_cache_load_addr + (addr_t)text_section->offset;
-  addr_t insn_addr_end = insn_addr + text_section->size;
-
-  addr_t write_svc_addr = (addr_t)DobbySymbolResolver("libsystem_kernel.dylib", "write");
-  write_svc_addr += 4;
-
-  addr_t __psynch_mutexwait_svc_addr = (addr_t)DobbySymbolResolver("libsystem_kernel.dylib", "__psynch_mutexwait");
-  __psynch_mutexwait_svc_addr += 4;
-
-  for (; insn_addr < insn_addr_end; insn_addr += sizeof(uint32_t)) {
-    if (*(uint32_t *)insn_addr == 0xd4001001) {
-      if (insn_addr == write_svc_addr)
-        continue;
-
-      if (insn_addr == __psynch_mutexwait_svc_addr)
-        continue;
-      supervisor_call_monitor_register_svc((addr_t)insn_addr);
-    }
-  }
-}
-
-void supervisor_call_monitor_init() {
-  // create logger file
-  char logger_path[1024] = {0};
-  sprintf(logger_path, "%s%s", getenv("HOME"), "/Documents/svc_monitor.txt");
-  LOG(2, "HOME: %s", logger_path);
-  async_logger_init(logger_path);
-
-  dobby_enable_near_branch_trampoline();
-}
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/supervisor_call_monitor.h b/loader/dobby/builtin-plugin/SupervisorCallMonitor/supervisor_call_monitor.h
deleted file mode 100644
index 45bde0a4..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/supervisor_call_monitor.h
+++ /dev/null
@@ -1,24 +0,0 @@
-#pragma once
-
-#include <stdint.h>
-typedef uintptr_t addr_t;
-
-#include "dobby.h"
-
-void supervisor_call_monitor_init();
-
-void supervisor_call_monitor_register_handler(DBICallTy handler);
-
-void supervisor_call_monitor_register_svc(addr_t svc_addr);
-
-void supervisor_call_monitor_register_image(void *header);
-
-void supervisor_call_monitor_register_main_app();
-
-void supervisor_call_monitor_register_system_kernel();
-
-void supervisor_call_monitor_register_syscall_call_log_handler();
-
-void supervisor_call_monitor_register_mach_syscall_call_log_handler();
-
-void supervisor_call_monitor_register_sensitive_api_handler();
\ No newline at end of file
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/system_call_log_handler.cc b/loader/dobby/builtin-plugin/SupervisorCallMonitor/system_call_log_handler.cc
deleted file mode 100644
index 90f9209d..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/system_call_log_handler.cc
+++ /dev/null
@@ -1,98 +0,0 @@
-#include "dobby_internal.h"
-
-#include <mach/mach.h>
-
-#include "misc-helper/async_logger.h"
-#include "PlatformUtil/ProcessRuntimeUtility.h"
-#include "SupervisorCallMonitor/misc_utility.h"
-#include "SupervisorCallMonitor/supervisor_call_monitor.h"
-
-#include "XnuInternal/syscalls.c"
-
-static const char *syscall_num_to_str(int num) {
-  return syscallnames[num];
-}
-
-static addr_t getCallFirstArg(RegisterContext *ctx) {
-  addr_t result;
-#if defined(_M_X64) || defined(__x86_64__)
-#if defined(_WIN32)
-  result = ctx->general.regs.rcx;
-#else
-  result = ctx->general.regs.rdi;
-#endif
-#elif defined(__arm64__) || defined(__aarch64__)
-  result = ctx->general.regs.x0;
-#elif defined(__arm__)
-  result = ctx->general.regs.r0;
-#else
-#error "Not Support Architecture."
-#endif
-  return result;
-}
-
-static addr_t getRealLr(RegisterContext *ctx) {
-  addr_t closure_trampoline_reserved_stack = ctx->sp - sizeof(addr_t);
-  return *(addr_t *)closure_trampoline_reserved_stack;
-}
-
-static addr_t fast_get_caller_from_main_binary(RegisterContext *ctx) {
-  static addr_t text_section_start = 0, text_section_end = 0;
-  static addr_t slide = 0;
-  if (text_section_start == 0 || text_section_end == 0) {
-    auto main = ProcessRuntimeUtility::GetProcessModule("mobilex");
-    addr_t main_header = (addr_t)main.load_address;
-
-    auto text_segment = macho_kit_get_segment_by_name((mach_header_t *)main_header, "__TEXT");
-    slide = main_header - text_segment->vmaddr;
-
-    auto text_section = macho_kit_get_section_by_name((mach_header_t *)main_header, "__TEXT", "__text");
-    text_section_start = main_header + (addr_t)text_section->offset;
-    text_section_end = text_section_start + text_section->size;
-  }
-
-  if (ctx == NULL)
-    return 0;
-
-  addr_t lr = getRealLr(ctx);
-  if (lr > text_section_start && lr < text_section_end)
-    return lr - slide;
-
-#define MAX_STACK_ITERATE_LEVEL 8
-  addr_t fp = ctx->fp;
-  if (fp == 0)
-    return 0;
-  for (int i = 0; i < MAX_STACK_ITERATE_LEVEL; i++) {
-    addr_t lr = *(addr_t *)(fp + sizeof(addr_t));
-    if (lr > text_section_start && lr < text_section_end)
-      return lr - slide;
-    fp = *(addr_t *)fp;
-    if (fp == 0)
-      return 0;
-  }
-  return 0;
-}
-
-static void syscall_log_handler(RegisterContext *ctx, const HookEntryInfo *info) {
-  addr_t caller = fast_get_caller_from_main_binary(ctx);
-  if (caller == 0)
-    return;
-
-  char buffer[2048] = {0};
-  int syscall_rum = ctx->general.regs.x16;
-  if (syscall_rum == 0) {
-    syscall_rum = (int)getCallFirstArg(ctx);
-    sprintf(buffer, "[syscall svc-%d] %s\n", syscall_rum, syscall_num_to_str(syscall_rum));
-  } else if (syscall_rum > 0) {
-    sprintf(buffer, "[svc-%d] %s\n", syscall_rum, syscall_num_to_str(syscall_rum));
-    if (syscall_rum == 5) {
-      sprintf(buffer, "[svc-%d] %s:%s\n", syscall_rum, syscall_num_to_str(syscall_rum), (char *)ctx->general.regs.x0);
-    }
-  }
-  async_logger_print(buffer);
-}
-
-void supervisor_call_monitor_register_syscall_call_log_handler() {
-  fast_get_caller_from_main_binary(NULL);
-  supervisor_call_monitor_register_handler(syscall_log_handler);
-}
\ No newline at end of file
diff --git a/loader/dobby/builtin-plugin/SupervisorCallMonitor/test_supervisor_call_monitor.cc b/loader/dobby/builtin-plugin/SupervisorCallMonitor/test_supervisor_call_monitor.cc
deleted file mode 100644
index 862c4e1c..00000000
--- a/loader/dobby/builtin-plugin/SupervisorCallMonitor/test_supervisor_call_monitor.cc
+++ /dev/null
@@ -1,16 +0,0 @@
-
-#include "dobby_internal.h"
-
-#include "SupervisorCallMonitor/supervisor_call_monitor.h"
-
-#if 1
-__attribute__((constructor)) static void ctor() {
-  log_set_level(2);
-  log_switch_to_syslog();
-
-  supervisor_call_monitor_init();
-  supervisor_call_monitor_register_main_app();
-  supervisor_call_monitor_register_syscall_call_log_handler();
-  supervisor_call_monitor_register_mach_syscall_call_log_handler();
-}
-#endif
\ No newline at end of file
diff --git a/loader/dobby/builtin-plugin/SymbolResolver/CMakeLists.txt b/loader/dobby/builtin-plugin/SymbolResolver/CMakeLists.txt
deleted file mode 100644
index 6151f167..00000000
--- a/loader/dobby/builtin-plugin/SymbolResolver/CMakeLists.txt
+++ /dev/null
@@ -1,37 +0,0 @@
-set(SOURCE_FILE_LIST )
-
-if(NOT DEFINED DOBBY_DIR)
-  message(FATAL_ERROR "DOBBY_DIR must be set!")
-endif()
-
-if(SYSTEM.Darwin)
-  set(SOURCE_FILE_LIST ${SOURCE_FILE_LIST}
-    ${CMAKE_CURRENT_SOURCE_DIR}/macho/dyld_shared_cache_symbol_table_iterator.cc
-    ${CMAKE_CURRENT_SOURCE_DIR}/macho/dobby_symbol_resolver.cc
-
-    ${DOBBY_DIR}/source/UserMode/PlatformUtil/Darwin/ProcessRuntimeUtility.cc
-    )
-endif()
-if(SYSTEM.Linux OR SYSTEM.Android)
-  set(SOURCE_FILE_LIST ${SOURCE_FILE_LIST}
-    ${CMAKE_CURRENT_SOURCE_DIR}/elf/dobby_symbol_resolver.cc
-
-    ${DOBBY_DIR}/source/UserMode/PlatformUtil/Linux/ProcessRuntimeUtility.cc
-    )
-endif()
-if(SYSTEM.Windows)
-  set(SOURCE_FILE_LIST ${SOURCE_FILE_LIST}
-    ${CMAKE_CURRENT_SOURCE_DIR}/pe/dobby_symbol_resolver.cc
-    
-    ${DOBBY_DIR}/source/UserMode/PlatformUtil/Windows/ProcessRuntimeUtility.cc
-  )
-endif()
-
-add_library(symbol_resolver STATIC
-  ${SOURCE_FILE_LIST}
-  )
-
-include_directories(
-  .
-)
-
diff --git a/loader/dobby/builtin-plugin/SymbolResolver/dobby_symbol_resolver.h b/loader/dobby/builtin-plugin/SymbolResolver/dobby_symbol_resolver.h
deleted file mode 100644
index 96acfb3d..00000000
--- a/loader/dobby/builtin-plugin/SymbolResolver/dobby_symbol_resolver.h
+++ /dev/null
@@ -1,14 +0,0 @@
-#ifndef DOBBY_SYMBOL_RESOLVER_H
-#define DOBBY_SYMBOL_RESOLVER_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-void *DobbySymbolResolver(const char *image_name, const char *symbol_name);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
\ No newline at end of file
diff --git a/loader/dobby/builtin-plugin/SymbolResolver/elf/dobby_symbol_resolver.cc b/loader/dobby/builtin-plugin/SymbolResolver/elf/dobby_symbol_resolver.cc
deleted file mode 100644
index fb0cd28f..00000000
--- a/loader/dobby/builtin-plugin/SymbolResolver/elf/dobby_symbol_resolver.cc
+++ /dev/null
@@ -1,292 +0,0 @@
-#include "SymbolResolver/dobby_symbol_resolver.h"
-#include "common_header.h"
-
-#include <elf.h>
-#include <dlfcn.h>
-#include <link.h>
-#include <sys/mman.h>
-#include <fcntl.h>
-#include <sys/stat.h>
-#include <unistd.h>
-
-#include <string>
-#include <string.h>
-
-#include "PlatformUtil/ProcessRuntimeUtility.h"
-
-#include <vector>
-
-#undef LOG_TAG
-#define LOG_TAG "DobbySymbolResolver"
-
-static void file_mmap(const char *file_path, uint8_t **data_ptr, size_t *data_size_ptr) {
-  uint8_t *mmap_data = NULL;
-  size_t file_size = 0;
-
-  int fd = open(file_path, O_RDONLY, 0);
-  if (fd < 0) {
-    ERROR_LOG("%s open failed", file_path);
-    goto finished;
-  }
-
-  {
-    struct stat s;
-    int rt = fstat(fd, &s);
-    if (rt != 0) {
-      ERROR_LOG("mmap failed");
-      goto finished;
-    }
-    file_size = s.st_size;
-  }
-
-  // auto align
-  mmap_data = (uint8_t *)mmap(0, file_size, PROT_READ | PROT_WRITE, MAP_FILE | MAP_PRIVATE, fd, 0);
-  if (mmap_data == MAP_FAILED) {
-    ERROR_LOG("mmap failed");
-    goto finished;
-  }
-
-finished:
-  close(fd);
-
-  if (data_size_ptr)
-    *data_size_ptr = file_size;
-  if (data_ptr)
-    *data_ptr = mmap_data;
-}
-
-static void file_unmap(void *data, size_t data_size) {
-  int ret = munmap(data, data_size);
-  if (ret != 0) {
-    ERROR_LOG("munmap failed");
-    return;
-  }
-}
-
-typedef struct elf_ctx {
-  void *header;
-
-  uintptr_t load_bias;
-
-  ElfW(Shdr) * sym_sh_;
-  ElfW(Shdr) * dynsym_sh_;
-
-  const char *strtab_;
-  ElfW(Sym) * symtab_;
-
-  const char *dynstrtab_;
-  ElfW(Sym) * dynsymtab_;
-
-  size_t nbucket_;
-  size_t nchain_;
-  uint32_t *bucket_;
-  uint32_t *chain_;
-
-  size_t gnu_nbucket_;
-  uint32_t *gnu_bucket_;
-  uint32_t *gnu_chain_;
-  uint32_t gnu_maskwords_;
-  uint32_t gnu_shift2_;
-  ElfW(Addr) * gnu_bloom_filter_;
-} elf_ctx_t;
-
-static void get_syms(ElfW(Ehdr) * header, ElfW(Sym) * *symtab_ptr, char **strtab_ptr, int *count_ptr) {
-  ElfW(Shdr) *section_header = NULL;
-  section_header = (ElfW(Shdr) *)((addr_t)header + header->e_shoff);
-
-  ElfW(Shdr) *section_strtab_section_header = NULL;
-  section_strtab_section_header = (ElfW(Shdr) *)((addr_t)section_header + header->e_shstrndx * header->e_shentsize);
-  char *section_strtab = NULL;
-  section_strtab = (char *)((addr_t)header + section_strtab_section_header->sh_offset);
-
-  for (int i = 0; i < header->e_shnum; ++i) {
-    const char *section_name = (const char *)(section_strtab + section_header->sh_name);
-    if (section_header->sh_type == SHT_SYMTAB && strcmp(section_name, ".symtab") == 0) {
-      *symtab_ptr = (ElfW(Sym) *)((addr_t)header + section_header->sh_offset);
-      *count_ptr = section_header->sh_size / sizeof(ElfW(Sym));
-    }
-
-    if (section_header->sh_type == SHT_STRTAB && strcmp(section_name, ".strtab") == 0) {
-      *strtab_ptr = (char *)((addr_t)header + section_header->sh_offset);
-    }
-    section_header = (ElfW(Shdr) *)((addr_t)section_header + header->e_shentsize);
-  }
-}
-
-int elf_ctx_init(elf_ctx_t *ctx, void *header_) {
-  ElfW(Ehdr) *ehdr = (ElfW(Ehdr) *)header_;
-  ctx->header = ehdr;
-
-  ElfW(Addr) ehdr_addr = (ElfW(Addr))ehdr;
-
-  // Handle dynamic segment
-  {
-    ElfW(Addr) addr = 0;
-    ElfW(Dyn) *dyn = NULL;
-    ElfW(Phdr) *phdr = reinterpret_cast<ElfW(Phdr) *>(ehdr_addr + ehdr->e_phoff);
-    for (size_t i = 0; i < ehdr->e_phnum; i++) {
-      if (phdr[i].p_type == PT_DYNAMIC) {
-        dyn = reinterpret_cast<ElfW(Dyn) *>(ehdr_addr + phdr[i].p_offset);
-      } else if (phdr[i].p_type == PT_LOAD) {
-        addr = ehdr_addr + phdr[i].p_offset - phdr[i].p_vaddr;
-        if (ctx->load_bias == 0)
-          ctx->load_bias = ehdr_addr - (phdr[i].p_vaddr - phdr[i].p_offset);
-      } else if (phdr[i].p_type == PT_PHDR) {
-        ctx->load_bias = (ElfW(Addr))phdr - phdr[i].p_vaddr;
-      }
-    }
-//    ctx->load_bias =
-#if 0
-    const char *strtab = nullptr;
-    ElfW(Sym) *symtab  = nullptr;
-    for (ElfW(Dyn) *d = dyn; d->d_tag != DT_NULL; ++d) {
-      if (d->d_tag == DT_STRTAB) {
-        strtab = reinterpret_cast<const char *>(addr + d->d_un.d_ptr);
-      } else if (d->d_tag == DT_SYMTAB) {
-        symtab = reinterpret_cast<ElfW(Sym) *>(addr + d->d_un.d_ptr);
-      }
-    }
-#endif
-  }
-
-  // Handle section
-  {
-    ElfW(Shdr) * dynsym_sh, *dynstr_sh;
-    ElfW(Shdr) * sym_sh, *str_sh;
-
-    ElfW(Shdr) *shdr = reinterpret_cast<ElfW(Shdr) *>(ehdr_addr + ehdr->e_shoff);
-
-    ElfW(Shdr) *shstr_sh = NULL;
-    shstr_sh = &shdr[ehdr->e_shstrndx];
-    char *shstrtab = NULL;
-    shstrtab = (char *)((addr_t)ehdr_addr + shstr_sh->sh_offset);
-
-    for (size_t i = 0; i < ehdr->e_shnum; i++) {
-      if (shdr[i].sh_type == SHT_SYMTAB) {
-        sym_sh = &shdr[i];
-        ctx->sym_sh_ = sym_sh;
-        ctx->symtab_ = (ElfW(Sym) *)(ehdr_addr + shdr[i].sh_offset);
-      } else if (shdr[i].sh_type == SHT_STRTAB && strcmp(shstrtab + shdr[i].sh_name, ".strtab") == 0) {
-        str_sh = &shdr[i];
-        ctx->strtab_ = (const char *)(ehdr_addr + shdr[i].sh_offset);
-      } else if (shdr[i].sh_type == SHT_DYNSYM) {
-        dynsym_sh = &shdr[i];
-        ctx->dynsym_sh_ = dynsym_sh;
-        ctx->dynsymtab_ = (ElfW(Sym) *)(ehdr_addr + shdr[i].sh_offset);
-      } else if (shdr[i].sh_type == SHT_STRTAB && strcmp(shstrtab + shdr[i].sh_name, ".dynstr") == 0) {
-        dynstr_sh = &shdr[i];
-        ctx->dynstrtab_ = (const char *)(ehdr_addr + shdr[i].sh_offset);
-      }
-    }
-  }
-
-  return 0;
-}
-
-static void *iterate_symbol_table_impl(const char *symbol_name, ElfW(Sym) * symtab, const char *strtab, int count) {
-  for (int i = 0; i < count; ++i) {
-    ElfW(Sym) *sym = symtab + i;
-    const char *symbol_name_ = strtab + sym->st_name;
-    if (strcmp(symbol_name_, symbol_name) == 0) {
-      return (void *)sym->st_value;
-    }
-  }
-  return NULL;
-}
-
-void *elf_ctx_iterate_symbol_table(elf_ctx_t *ctx, const char *symbol_name) {
-  void *result = NULL;
-  if (ctx->symtab_ && ctx->strtab_) {
-    size_t count = ctx->sym_sh_->sh_size / sizeof(ElfW(Sym));
-    result = iterate_symbol_table_impl(symbol_name, ctx->symtab_, ctx->strtab_, count);
-    if (result)
-      return result;
-  }
-
-  if (ctx->dynsymtab_ && ctx->dynstrtab_) {
-    size_t count = ctx->dynsym_sh_->sh_size / sizeof(ElfW(Sym));
-    result = iterate_symbol_table_impl(symbol_name, ctx->dynsymtab_, ctx->dynstrtab_, count);
-    if (result)
-      return result;
-  }
-  return NULL;
-}
-
-void *resolve_elf_internal_symbol(const char *library_name, const char *symbol_name) {
-  void *result = NULL;
-
-  if (library_name) {
-    RuntimeModule module = ProcessRuntimeUtility::GetProcessModule(library_name);
-
-    uint8_t *file_mem = NULL;
-    size_t file_mem_size = 0;
-    if (module.load_address)
-      file_mmap(module.path, &file_mem, &file_mem_size);
-
-    elf_ctx_t ctx;
-    memset(&ctx, 0, sizeof(elf_ctx_t));
-    if (file_mem) {
-      elf_ctx_init(&ctx, file_mem);
-      result = elf_ctx_iterate_symbol_table(&ctx, symbol_name);
-    }
-
-    if (result)
-      result = (void *)((addr_t)result + (addr_t)module.load_address - ((addr_t)file_mem - (addr_t)ctx.load_bias));
-
-    if (file_mem)
-      file_unmap(file_mem, file_mem_size);
-  }
-
-  if (!result) {
-    std::vector<RuntimeModule> ProcessModuleMap = ProcessRuntimeUtility::GetProcessModuleMap();
-    for (auto module : ProcessModuleMap) {
-      uint8_t *file_mem = NULL;
-      size_t file_mem_size = 0;
-
-      if (module.load_address)
-        file_mmap(module.path, &file_mem, &file_mem_size);
-
-      elf_ctx_t ctx;
-      memset(&ctx, 0, sizeof(elf_ctx_t));
-      if (file_mem) {
-        elf_ctx_init(&ctx, file_mem);
-        result = elf_ctx_iterate_symbol_table(&ctx, symbol_name);
-      }
-
-      if (result)
-        result = (void *)((addr_t)result + (addr_t)module.load_address - ((addr_t)file_mem - (addr_t)ctx.load_bias));
-
-      if (file_mem)
-        file_unmap(file_mem, file_mem_size);
-
-      if (result)
-        break;
-    }
-  }
-  return result;
-}
-
-// impl at "android_restriction.cc"
-extern std::vector<void *> linker_get_solist();
-
-PUBLIC void *DobbySymbolResolver(const char *image_name, const char *symbol_name_pattern) {
-  void *result = NULL;
-
-#if 0
-  auto solist = linker_get_solist();
-  for (auto soinfo : solist) {
-    uintptr_t handle = linker_soinfo_to_handle(soinfo);
-    if (image_name == NULL || strstr(linker_soinfo_get_realpath(soinfo), image_name) != 0) {
-      result = dlsym((void *)handle, symbol_name_pattern);
-      if (result)
-        return result;
-    }
-  }
-#endif
-  result = dlsym(RTLD_DEFAULT, symbol_name_pattern);
-  if (result)
-    return result;
-
-  result = resolve_elf_internal_symbol(image_name, symbol_name_pattern);
-  return result;
-}
\ No newline at end of file
diff --git a/loader/dobby/builtin-plugin/SymbolResolver/macho/dobby_symbol_resolver.cc b/loader/dobby/builtin-plugin/SymbolResolver/macho/dobby_symbol_resolver.cc
deleted file mode 100644
index 88cbe90b..00000000
--- a/loader/dobby/builtin-plugin/SymbolResolver/macho/dobby_symbol_resolver.cc
+++ /dev/null
@@ -1,464 +0,0 @@
-#include <mach-o/dyld.h>
-#include <mach-o/loader.h>
-#include <mach-o/nlist.h>
-#include <mach-o/dyld_images.h>
-
-#include <stdint.h>
-#include <stdio.h>
-#include <string.h>
-
-#include <mach/vm_map.h>
-#include <mach/mach.h>
-
-#include <vector>
-
-#include "SymbolResolver/dobby_symbol_resolver.h"
-#include "SymbolResolver/macho/shared_cache_internal.h"
-
-#include "common_header.h"
-
-#include "logging/logging.h"
-
-#include "PlatformUtil/ProcessRuntimeUtility.h"
-
-#undef LOG_TAG
-#define LOG_TAG "DobbySymbolResolver"
-
-typedef struct macho_ctx {
-  mach_header_t *header;
-
-  uintptr_t slide;
-  uintptr_t linkedit_base;
-
-  segment_command_t *segments[16];
-  int segments_count;
-
-  segment_command_t *text_seg;
-  segment_command_t *data_seg;
-  segment_command_t *data_const_seg;
-  segment_command_t *linkedit_seg;
-
-  struct symtab_command *symtab_cmd;
-  struct dysymtab_command *dysymtab_cmd;
-  struct dyld_info_command *dyld_info_cmd;
-
-  nlist_t *symtab;
-  char *strtab;
-  uint32_t *indirect_symtab;
-
-} macho_ctx_t;
-
-uintptr_t read_uleb128(const uint8_t **pp, const uint8_t *end) {
-  uint8_t *p = (uint8_t *)*pp;
-  uint64_t result = 0;
-  int bit = 0;
-  do {
-    if (p == end)
-      ASSERT(p == end);
-
-    uint64_t slice = *p & 0x7f;
-
-    if (bit > 63)
-      ASSERT(bit > 63);
-    else {
-      result |= (slice << bit);
-      bit += 7;
-    }
-  } while (*p++ & 0x80);
-
-  *pp = p;
-
-  return (uintptr_t)result;
-}
-
-intptr_t read_sleb128(const uint8_t **pp, const uint8_t *end) {
-  uint8_t *p = (uint8_t *)*pp;
-
-  int64_t result = 0;
-  int bit = 0;
-  uint8_t byte;
-  do {
-    if (p == end)
-      ASSERT(p == end);
-    byte = *p++;
-    result |= (((int64_t)(byte & 0x7f)) << bit);
-    bit += 7;
-  } while (byte & 0x80);
-  // sign extend negative numbers
-  if ((byte & 0x40) != 0)
-    result |= (~0ULL) << bit;
-
-  *pp = p;
-
-  return (intptr_t)result;
-}
-
-// dyld
-// bool MachOLoaded::findExportedSymbol
-uint8_t *walk_exported_trie(const uint8_t *start, const uint8_t *end, const char *symbol) {
-  uint32_t visitedNodeOffsets[128];
-  int visitedNodeOffsetCount = 0;
-  visitedNodeOffsets[visitedNodeOffsetCount++] = 0;
-  const uint8_t *p = start;
-  while (p < end) {
-    uint64_t terminalSize = *p++;
-    if (terminalSize > 127) {
-      // except for re-export-with-rename, all terminal sizes fit in one byte
-      --p;
-      terminalSize = read_uleb128(&p, end);
-    }
-    if ((*symbol == '\0') && (terminalSize != 0)) {
-      return (uint8_t *)p;
-      // skip flag == EXPORT_SYMBOL_FLAGS_REEXPORT
-      read_uleb128(&p, end);
-      return (uint8_t *)read_uleb128(&p, end);
-    }
-    const uint8_t *children = p + terminalSize;
-    if (children > end) {
-      // diag.error("malformed trie node, terminalSize=0x%llX extends past end of trie\n", terminalSize);
-      return NULL;
-    }
-    uint8_t childrenRemaining = *children++;
-    p = children;
-    uint64_t nodeOffset = 0;
-    for (; childrenRemaining > 0; --childrenRemaining) {
-      const char *ss = symbol;
-      bool wrongEdge = false;
-      // scan whole edge to get to next edge
-      // if edge is longer than target symbol name, don't read past end of symbol name
-      char c = *p;
-      while (c != '\0') {
-        if (!wrongEdge) {
-          if (c != *ss)
-            wrongEdge = true;
-          ++ss;
-        }
-        ++p;
-        c = *p;
-      }
-      if (wrongEdge) {
-        // advance to next child
-        ++p; // skip over zero terminator
-        // skip over uleb128 until last byte is found
-        while ((*p & 0x80) != 0)
-          ++p;
-        ++p; // skip over last byte of uleb128
-        if (p > end) {
-          // diag.error("malformed trie node, child node extends past end of trie\n");
-          return NULL;
-        }
-      } else {
-        // the symbol so far matches this edge (child)
-        // so advance to the child's node
-        ++p;
-        nodeOffset = read_uleb128(&p, end);
-        if ((nodeOffset == 0) || (&start[nodeOffset] > end)) {
-          // diag.error("malformed trie child, nodeOffset=0x%llX out of range\n", nodeOffset);
-          return NULL;
-        }
-        symbol = ss;
-        break;
-      }
-    }
-    if (nodeOffset != 0) {
-      if (nodeOffset > (uint64_t)(end - start)) {
-        // diag.error("malformed trie child, nodeOffset=0x%llX out of range\n", nodeOffset);
-        return NULL;
-      }
-      for (int i = 0; i < visitedNodeOffsetCount; ++i) {
-        if (visitedNodeOffsets[i] == nodeOffset) {
-          // diag.error("malformed trie child, cycle to nodeOffset=0x%llX\n", nodeOffset);
-          return NULL;
-        }
-      }
-      visitedNodeOffsets[visitedNodeOffsetCount++] = (uint32_t)nodeOffset;
-      if (visitedNodeOffsetCount >= 128) {
-        // diag.error("malformed trie too deep\n");
-        return NULL;
-      }
-      p = &start[nodeOffset];
-    } else
-      p = end;
-  }
-  return NULL;
-}
-
-uintptr_t iterate_exported_symbol(mach_header_t *header, const char *symbol_name, uint64_t *out_flags) {
-  segment_command_t *curr_seg_cmd;
-  struct dyld_info_command *dyld_info_cmd = NULL;
-  struct linkedit_data_command *exports_trie_cmd = NULL;
-  segment_command_t *text_segment, *data_segment, *linkedit_segment;
-
-  curr_seg_cmd = (segment_command_t *)((uintptr_t)header + sizeof(mach_header_t));
-  for (int i = 0; i < header->ncmds; i++) {
-    switch (curr_seg_cmd->cmd) {
-    case LC_SEGMENT_ARCH_DEPENDENT: {
-      if (strcmp(curr_seg_cmd->segname, "__LINKEDIT") == 0) {
-        linkedit_segment = curr_seg_cmd;
-      } else if (strcmp(curr_seg_cmd->segname, "__TEXT") == 0) {
-        text_segment = curr_seg_cmd;
-      }
-    } break;
-    case LC_DYLD_EXPORTS_TRIE: {
-      exports_trie_cmd = (struct linkedit_data_command *)curr_seg_cmd;
-    } break;
-    case LC_DYLD_INFO:
-    case LC_DYLD_INFO_ONLY: {
-      dyld_info_cmd = (struct dyld_info_command *)curr_seg_cmd;
-    } break;
-    default:
-      break;
-    };
-    curr_seg_cmd = (segment_command_t *)((uintptr_t)curr_seg_cmd + curr_seg_cmd->cmdsize);
-  }
-
-  if (text_segment == NULL || linkedit_segment == NULL) {
-    return 0;
-  }
-
-  if (exports_trie_cmd == NULL && dyld_info_cmd == NULL)
-    return 0;
-
-  uint32_t trieFileOffset = dyld_info_cmd ? dyld_info_cmd->export_off : exports_trie_cmd->dataoff;
-  uint32_t trieFileSize = dyld_info_cmd ? dyld_info_cmd->export_size : exports_trie_cmd->datasize;
-
-  uintptr_t slide = (uintptr_t)header - (uintptr_t)text_segment->vmaddr;
-  uintptr_t linkedit_base = (uintptr_t)slide + linkedit_segment->vmaddr - linkedit_segment->fileoff;
-
-  void *exports = (void *)(linkedit_base + trieFileOffset);
-  if (exports == NULL)
-    return 0;
-
-  uint8_t *exports_start = (uint8_t *)exports;
-  uint8_t *exports_end = exports_start + trieFileSize;
-  uint8_t *node = (uint8_t *)walk_exported_trie(exports_start, exports_end, symbol_name);
-  if (node == NULL)
-    return 0;
-  const uint8_t *p = node;
-  const uintptr_t flags = read_uleb128(&p, exports_end);
-  if (flags & EXPORT_SYMBOL_FLAGS_REEXPORT) {
-    return 0;
-  }
-  if (out_flags)
-    *out_flags = flags;
-  uint64_t trieValue = read_uleb128(&p, exports_end);
-  return trieValue;
-#if 0
-  if (off == (void *)0) {
-    if (symbol_name[0] != '_' && strlen(&symbol_name[1]) >= 1) {
-      char _symbol_name[1024] = {0};
-      _symbol_name[0] = '_';
-      strcpy(&_symbol_name[1], symbol_name);
-      off = (void *)walk_exported_trie((const uint8_t *)exports, (const uint8_t *)exports + trieFileSize, _symbol_name);
-    }
-  }
-#endif
-}
-
-void macho_ctx_init(macho_ctx_t *ctx, mach_header_t *header) {
-  ctx->header = header;
-  segment_command_t *curr_seg_cmd;
-  segment_command_t *text_segment, *data_segment, *data_const_segment, *linkedit_segment;
-  struct symtab_command *symtab_cmd = NULL;
-  struct dysymtab_command *dysymtab_cmd = NULL;
-  struct dyld_info_command *dyld_info_cmd = NULL;
-
-  curr_seg_cmd = (segment_command_t *)((uintptr_t)header + sizeof(mach_header_t));
-  for (int i = 0; i < header->ncmds; i++) {
-    if (curr_seg_cmd->cmd == LC_SEGMENT_ARCH_DEPENDENT) {
-      //  BIND_OPCODE_SET_SEGMENT_AND_OFFSET_ULEB and REBASE_OPCODE_SET_SEGMENT_AND_OFFSET_ULEB
-      ctx->segments[ctx->segments_count++] = curr_seg_cmd;
-
-      if (strcmp(curr_seg_cmd->segname, "__LINKEDIT") == 0) {
-        linkedit_segment = curr_seg_cmd;
-      } else if (strcmp(curr_seg_cmd->segname, "__DATA") == 0) {
-        data_segment = curr_seg_cmd;
-      } else if (strcmp(curr_seg_cmd->segname, "__DATA_CONST") == 0) {
-        data_const_segment = curr_seg_cmd;
-      } else if (strcmp(curr_seg_cmd->segname, "__TEXT") == 0) {
-        text_segment = curr_seg_cmd;
-      }
-    } else if (curr_seg_cmd->cmd == LC_SYMTAB) {
-      symtab_cmd = (struct symtab_command *)curr_seg_cmd;
-    } else if (curr_seg_cmd->cmd == LC_DYSYMTAB) {
-      dysymtab_cmd = (struct dysymtab_command *)curr_seg_cmd;
-    } else if (curr_seg_cmd->cmd == LC_DYLD_INFO || curr_seg_cmd->cmd == LC_DYLD_INFO_ONLY) {
-      dyld_info_cmd = (struct dyld_info_command *)curr_seg_cmd;
-    }
-    curr_seg_cmd = (segment_command_t *)((uintptr_t)curr_seg_cmd + curr_seg_cmd->cmdsize);
-  }
-
-  uintptr_t slide = (uintptr_t)header - (uintptr_t)text_segment->vmaddr;
-  uintptr_t linkedit_base = (uintptr_t)slide + linkedit_segment->vmaddr - linkedit_segment->fileoff;
-
-  ctx->text_seg = text_segment;
-  ctx->data_seg = data_segment;
-  ctx->data_const_seg = data_const_segment;
-  ctx->linkedit_seg = linkedit_segment;
-
-  ctx->symtab_cmd = symtab_cmd;
-  ctx->dysymtab_cmd = dysymtab_cmd;
-  ctx->dyld_info_cmd = dyld_info_cmd;
-
-  ctx->slide = slide;
-  ctx->linkedit_base = linkedit_base;
-
-  ctx->symtab = (nlist_t *)(ctx->linkedit_base + ctx->symtab_cmd->symoff);
-  ctx->strtab = (char *)(ctx->linkedit_base + ctx->symtab_cmd->stroff);
-  ctx->indirect_symtab = (uint32_t *)(ctx->linkedit_base + ctx->dysymtab_cmd->indirectsymoff);
-}
-
-uintptr_t iterate_symbol_table(char *name_pattern, nlist_t *symtab, uint32_t symtab_count, char *strtab) {
-  for (uint32_t i = 0; i < symtab_count; i++) {
-    if (symtab[i].n_value) {
-      uint32_t strtab_offset = symtab[i].n_un.n_strx;
-      char *symbol_name = strtab + strtab_offset;
-#if 0
-      LOG(1, "> %s", symbol_name);
-#endif
-      if (strcmp(name_pattern, symbol_name) == 0) {
-        return symtab[i].n_value;
-      }
-      if (symbol_name[0] == '_') {
-        if (strcmp(name_pattern, &symbol_name[1]) == 0) {
-          return symtab[i].n_value;
-        }
-      }
-    }
-  }
-  return 0;
-}
-
-static uintptr_t macho_kit_get_slide(mach_header_t *header) {
-  uintptr_t slide = 0;
-
-  segment_command_t *curr_seg_cmd;
-
-  curr_seg_cmd = (segment_command_t *)((addr_t)header + sizeof(mach_header_t));
-  for (int i = 0; i < header->ncmds; i++) {
-    if (curr_seg_cmd->cmd == LC_SEGMENT_ARCH_DEPENDENT) {
-      if (strcmp(curr_seg_cmd->segname, "__TEXT") == 0) {
-        slide = (uintptr_t)header - curr_seg_cmd->vmaddr;
-        return slide;
-      }
-    }
-    curr_seg_cmd = (segment_command_t *)((addr_t)curr_seg_cmd + curr_seg_cmd->cmdsize);
-  }
-  return 0;
-}
-
-PUBLIC void *DobbySymbolResolver(const char *image_name, const char *symbol_name_pattern) {
-  uintptr_t result = 0;
-
-  std::vector<RuntimeModule> ProcessModuleMap = ProcessRuntimeUtility::GetProcessModuleMap();
-
-  for (auto module : ProcessModuleMap) {
-    if (image_name != NULL && strstr(module.path, image_name) == NULL)
-      continue;
-
-    mach_header_t *header = (mach_header_t *)module.load_address;
-    size_t slide = 0;
-
-    if (header) {
-      if (header->magic == MH_MAGIC_64)
-        slide = macho_kit_get_slide(header);
-    }
-
-#if 0
-    LOG(1, "resolve image: %s", path);
-#endif
-
-    nlist_t *symtab = NULL;
-    uint32_t symtab_count = 0;
-    char *strtab = NULL;
-
-#if defined(__arm__) || defined(__aarch64__)
-    static int shared_cache_ctx_init_once = 0;
-    static shared_cache_ctx_t shared_cache_ctx;
-    if (shared_cache_ctx_init_once == 0) {
-      shared_cache_ctx_init_once = 1;
-      memset(&shared_cache_ctx, 0, sizeof(shared_cache_ctx_t));
-      shared_cache_ctx_init(&shared_cache_ctx);
-    }
-    if (shared_cache_ctx.runtime_shared_cache) {
-      // shared cache library
-      if (shared_cache_is_contain(&shared_cache_ctx, (addr_t)header, 0)) {
-        shared_cache_get_symbol_table(&shared_cache_ctx, header, &symtab, &symtab_count, &strtab);
-      }
-    }
-#endif
-    if (symtab && strtab) {
-      result = iterate_symbol_table((char *)symbol_name_pattern, symtab, symtab_count, strtab);
-    }
-    if (result) {
-      result = result + slide;
-      break;
-    }
-
-    // binary symbol table
-    macho_ctx_t macho_ctx;
-    memset(&macho_ctx, 0, sizeof(macho_ctx_t));
-    macho_ctx_init(&macho_ctx, header);
-    result = iterate_symbol_table((char *)symbol_name_pattern, macho_ctx.symtab, macho_ctx.symtab_cmd->nsyms,
-                                  macho_ctx.strtab);
-    if (result) {
-      result = result + slide;
-      break;
-    }
-
-    // binary exported table(uleb128)
-    uint64_t flags;
-    result = iterate_exported_symbol((mach_header_t *)header, symbol_name_pattern, &flags);
-    if (result) {
-      switch (flags & EXPORT_SYMBOL_FLAGS_KIND_MASK) {
-      case EXPORT_SYMBOL_FLAGS_KIND_REGULAR: {
-        result += (uintptr_t)header;
-      } break;
-      case EXPORT_SYMBOL_FLAGS_KIND_THREAD_LOCAL: {
-        result += (uintptr_t)header;
-      } break;
-      case EXPORT_SYMBOL_FLAGS_KIND_ABSOLUTE: {
-      } break;
-      default:
-        break;
-      }
-      return (void *)result;
-    }
-  }
-
-  mach_header_t *dyld_header = NULL;
-  if (image_name != NULL && strcmp(image_name, "dyld") == 0) {
-    // task info
-    task_dyld_info_data_t task_dyld_info;
-    mach_msg_type_number_t count = TASK_DYLD_INFO_COUNT;
-    if (task_info(mach_task_self(), TASK_DYLD_INFO, (task_info_t)&task_dyld_info, &count)) {
-      return NULL;
-    }
-
-    // get dyld load address
-    const struct dyld_all_image_infos *infos =
-        (struct dyld_all_image_infos *)(uintptr_t)task_dyld_info.all_image_info_addr;
-    dyld_header = (mach_header_t *)infos->dyldImageLoadAddress;
-
-    macho_ctx_t dyld_ctx;
-    memset(&dyld_ctx, 0, sizeof(macho_ctx_t));
-    macho_ctx_init(&dyld_ctx, dyld_header);
-    result =
-        iterate_symbol_table((char *)symbol_name_pattern, dyld_ctx.symtab, dyld_ctx.symtab_cmd->nsyms, dyld_ctx.strtab);
-    if (result) {
-      result = result + (addr_t)dyld_header;
-    }
-  }
-
-  return (void *)result;
-}
-
-#if defined(DOBBY_DEBUG) && 0
-__attribute__((constructor)) static void ctor() {
-  mach_header_t *header = NULL;
-  header = (mach_header_t *)_dyld_get_image_header(0);
-
-  void *addr = (void *)((addr_t)iterate_exported_symbol(header, "_mainxx") + (addr_t)header);
-  LOG(1, "export %p", addr);
-}
-#endif
diff --git a/loader/dobby/builtin-plugin/SymbolResolver/macho/dyld_shared_cache_symbol_table_iterator.cc b/loader/dobby/builtin-plugin/SymbolResolver/macho/dyld_shared_cache_symbol_table_iterator.cc
deleted file mode 100644
index 27e1dc54..00000000
--- a/loader/dobby/builtin-plugin/SymbolResolver/macho/dyld_shared_cache_symbol_table_iterator.cc
+++ /dev/null
@@ -1,240 +0,0 @@
-#include <stdio.h>
-#include <stdint.h>
-#include <unistd.h>
-#include <string.h>
-
-#include <pthread.h>  // pthread_once
-#include <sys/mman.h> // mmap
-#include <fcntl.h>    // open
-
-#include "SymbolResolver/macho/shared_cache_internal.h"
-#include "SymbolResolver/macho/shared-cache/dyld_cache_format.h"
-
-#include "logging/logging.h"
-
-#undef LOG_TAG
-#define LOG_TAG "DobbySymbolResolverCache"
-
-#if 0
-extern "C" {
-int __shared_region_check_np(uint64_t *startaddress);
-}
-#endif
-
-extern "C" const char *dyld_shared_cache_file_path();
-
-static pthread_once_t mmap_dyld_shared_cache_once = PTHREAD_ONCE_INIT;
-
-extern "C" int __shared_region_check_np(uint64_t *startaddress);
-
-#include <sys/stat.h>
-
-static char *fast_get_shared_cache_path() {
-#if defined(_M_IX86) || defined(__i386__) || defined(_M_X64) || defined(__x86_64__)
-  return NULL;
-#endif
-  char *result = NULL;
-  char path_buffer[2048] = {0};
-
-  const char *path = NULL;
-  do {
-    path = dyld_shared_cache_file_path();
-    if (path != NULL) {
-      break;
-    } else {
-      struct stat statbuf;
-      int r = 0;
-
-      path = IPHONE_DYLD_SHARED_CACHE_DIR DYLD_SHARED_CACHE_BASE_NAME "arm64";
-      r = stat(path, &statbuf);
-      if (r == 0) {
-        break;
-      }
-      path = IPHONE_DYLD_SHARED_CACHE_DIR DYLD_SHARED_CACHE_BASE_NAME "arm64e";
-      r = stat(path, &statbuf);
-      if (r == 0) {
-        break;
-      }
-      path = MACOSX_MRM_DYLD_SHARED_CACHE_DIR DYLD_SHARED_CACHE_BASE_NAME "arm64";
-      r = stat(path, &statbuf);
-      if (r == 0) {
-        break;
-      }
-      path = MACOSX_MRM_DYLD_SHARED_CACHE_DIR DYLD_SHARED_CACHE_BASE_NAME "arm64e";
-      r = stat(path, &statbuf);
-      if (r == 0) {
-        break;
-      }
-    }
-  } while (0);
-
-  if (path != NULL) {
-    strcpy(path_buffer, path);
-    result = (char *)malloc(strlen(path_buffer) + 1);
-    strcpy(result, path_buffer);
-  }
-
-  return result;
-}
-
-#include <mach/mach.h>
-#include <mach/task.h>
-#include <mach-o/dyld_images.h>
-struct dyld_cache_header *shared_cache_get_load_addr() {
-  static struct dyld_cache_header *shared_cache_load_addr = 0;
-
-  // task info
-  task_dyld_info_data_t task_dyld_info;
-  mach_msg_type_number_t count = TASK_DYLD_INFO_COUNT;
-  if (task_info(mach_task_self(), TASK_DYLD_INFO, (task_info_t)&task_dyld_info, &count)) {
-    return NULL;
-  }
-
-  // get dyld load address
-  const struct dyld_all_image_infos *infos =
-      (struct dyld_all_image_infos *)(uintptr_t)task_dyld_info.all_image_info_addr;
-  shared_cache_load_addr = (struct dyld_cache_header *)infos->sharedCacheBaseAddress;
-
-  return shared_cache_load_addr;
-
-#if 0
-  if (shared_cache_load_addr)
-    return shared_cache_load_addr;
-#if 0
-  if (syscall(294, &shared_cache_load_addr) == 0) {
-#else
-  if (__shared_region_check_np((uint64_t *)&shared_cache_load_addr) != 0) {
-#endif
-  shared_cache_load_addr = 0;
-}
-#endif
-  return shared_cache_load_addr;
-}
-
-int shared_cache_ctx_init(shared_cache_ctx_t *ctx) {
-  int fd;
-  const char *cache_file_path = NULL;
-
-  cache_file_path = fast_get_shared_cache_path();
-  if (cache_file_path == NULL) {
-    return -1;
-  }
-
-  fd = open(cache_file_path, O_RDONLY, 0);
-  if (fd == -1) {
-    return KERN_FAILURE;
-  }
-
-  struct dyld_cache_header *runtime_shared_cache;
-  struct dyld_cache_header *mmap_shared_cache;
-
-  // auto align
-  runtime_shared_cache = shared_cache_get_load_addr();
-  if (runtime_shared_cache == NULL) {
-    return KERN_FAILURE;
-  }
-
-  // maybe shared cache is apple silicon
-  if (runtime_shared_cache->localSymbolsSize == 0) {
-    return KERN_FAILURE;
-  }
-
-  size_t mmap_length = runtime_shared_cache->localSymbolsSize;
-  off_t mmap_offset = runtime_shared_cache->localSymbolsOffset;
-  mmap_shared_cache =
-      (struct dyld_cache_header *)mmap(0, mmap_length, PROT_READ, MAP_FILE | MAP_PRIVATE, fd, mmap_offset);
-  if (mmap_shared_cache == MAP_FAILED) {
-    DLOG(0, "mmap shared cache failed");
-    return KERN_FAILURE;
-  }
-
-  // fake shared cache header
-  mmap_shared_cache =
-      (struct dyld_cache_header *)((addr_t)mmap_shared_cache - runtime_shared_cache->localSymbolsOffset);
-
-  ctx->runtime_shared_cache = runtime_shared_cache;
-  ctx->mmap_shared_cache = mmap_shared_cache;
-
-  // shared cache slide
-  const struct dyld_cache_mapping_info *mappings =
-      (struct dyld_cache_mapping_info *)((char *)runtime_shared_cache + runtime_shared_cache->mappingOffset);
-  uintptr_t slide = (uintptr_t)runtime_shared_cache - (uintptr_t)(mappings[0].address);
-  ctx->runtime_slide = slide;
-
-  // shared cache symbol table
-  static struct dyld_cache_local_symbols_info *localInfo = NULL;
-  localInfo =
-      (struct dyld_cache_local_symbols_info *)((char *)mmap_shared_cache + runtime_shared_cache->localSymbolsOffset);
-
-  static struct dyld_cache_local_symbols_entry *localEntries = NULL;
-  localEntries = (struct dyld_cache_local_symbols_entry *)((char *)localInfo + localInfo->entriesOffset);
-
-  ctx->local_symbols_info = localInfo;
-  ctx->local_symbols_entries = localEntries;
-
-  ctx->symtab = (nlist_t *)((char *)localInfo + localInfo->nlistOffset);
-  ctx->strtab = ((char *)localInfo) + localInfo->stringsOffset;
-  return 0;
-}
-
-// refer: dyld
-bool shared_cache_is_contain(shared_cache_ctx_t *ctx, addr_t addr, size_t length) {
-  struct dyld_cache_header *runtime_shared_cache;
-  if (ctx) {
-    runtime_shared_cache = ctx->runtime_shared_cache;
-  } else {
-    runtime_shared_cache = shared_cache_get_load_addr();
-  }
-
-  const struct dyld_cache_mapping_info *mappings =
-      (struct dyld_cache_mapping_info *)((char *)runtime_shared_cache + runtime_shared_cache->mappingOffset);
-  uintptr_t slide = (uintptr_t)runtime_shared_cache - (uintptr_t)(mappings[0].address);
-  uintptr_t unslidStart = (uintptr_t)addr - slide;
-
-  // quick out if after end of cache
-  if (unslidStart > (mappings[2].address + mappings[2].size))
-    return false;
-
-  // walk cache regions
-  const struct dyld_cache_mapping_info *mappingsEnd = &mappings[runtime_shared_cache->mappingCount];
-  uintptr_t unslidEnd = unslidStart + length;
-  for (const struct dyld_cache_mapping_info *m = mappings; m < mappingsEnd; ++m) {
-    if ((unslidStart >= m->address) && (unslidEnd < (m->address + m->size))) {
-      return true;
-    }
-  }
-  return false;
-}
-
-int shared_cache_get_symbol_table(shared_cache_ctx_t *ctx, mach_header_t *image_header, nlist_t **out_symtab,
-                                  uint32_t *out_symtab_count, char **out_strtab) {
-  struct dyld_cache_header *runtime_shared_cache = NULL;
-
-  runtime_shared_cache = ctx->runtime_shared_cache;
-
-  uint64_t textOffsetInCache = (uint64_t)image_header - (uint64_t)runtime_shared_cache;
-
-  nlist_t *localNlists = NULL;
-  uint32_t localNlistCount = 0;
-  const char *localStrings = NULL;
-
-  const uint32_t entriesCount = ctx->local_symbols_info->entriesCount;
-  for (uint32_t i = 0; i < entriesCount; ++i) {
-    if (ctx->local_symbols_entries[i].dylibOffset == textOffsetInCache) {
-      uint32_t localNlistStart = ctx->local_symbols_entries[i].nlistStartIndex;
-      localNlistCount = ctx->local_symbols_entries[i].nlistCount;
-      localNlists = &ctx->symtab[localNlistStart];
-
-#if 0
-      static struct dyld_cache_image_info *imageInfos = NULL;
-      imageInfos = (struct dyld_cache_image_info *)((addr_t)g_mmap_shared_cache + g_mmap_shared_cache->imagesOffset);
-      char *image_name = (char *)g_mmap_shared_cache + imageInfos[i].pathFileOffset;
-      LOG(1, "dyld image: %s", image_name);
-#endif
-    }
-  }
-  *out_symtab = localNlists;
-  *out_symtab_count = (uint32_t)localNlistCount;
-  *out_strtab = (char *)ctx->strtab;
-  return 0;
-}
diff --git a/loader/dobby/builtin-plugin/SymbolResolver/macho/shared-cache/dyld_cache_format.h b/loader/dobby/builtin-plugin/SymbolResolver/macho/shared-cache/dyld_cache_format.h
deleted file mode 100644
index 714291cd..00000000
--- a/loader/dobby/builtin-plugin/SymbolResolver/macho/shared-cache/dyld_cache_format.h
+++ /dev/null
@@ -1,481 +0,0 @@
-/* -*- mode: C++; c-basic-offset: 4; tab-width: 4 -*- 
- *
- * Copyright (c) 2006-2015 Apple Inc. All rights reserved.
- *
- * @APPLE_LICENSE_HEADER_START@
- * 
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this
- * file.
- * 
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- * 
- * @APPLE_LICENSE_HEADER_END@
- */
-#ifndef __DYLD_CACHE_FORMAT__
-#define __DYLD_CACHE_FORMAT__
-
-#include <stdint.h>
-#include <uuid/uuid.h>
-
-struct dyld_cache_header {
-  char magic[16];                     // e.g. "dyld_v0    i386"
-  uint32_t mappingOffset;             // file offset to first dyld_cache_mapping_info
-  uint32_t mappingCount;              // number of dyld_cache_mapping_info entries
-  uint32_t imagesOffset;              // file offset to first dyld_cache_image_info
-  uint32_t imagesCount;               // number of dyld_cache_image_info entries
-  uint64_t dyldBaseAddress;           // base address of dyld when cache was built
-  uint64_t codeSignatureOffset;       // file offset of code signature blob
-  uint64_t codeSignatureSize;         // size of code signature blob (zero means to end of file)
-  uint64_t slideInfoOffsetUnused;     // unused.  Used to be file offset of kernel slid info
-  uint64_t slideInfoSizeUnused;       // unused.  Used to be size of kernel slid info
-  uint64_t localSymbolsOffset;        // file offset of where local symbols are stored
-  uint64_t localSymbolsSize;          // size of local symbols information
-  uint8_t uuid[16];                   // unique value for each shared cache file
-  uint64_t cacheType;                 // 0 for development, 1 for production
-  uint32_t branchPoolsOffset;         // file offset to table of uint64_t pool addresses
-  uint32_t branchPoolsCount;          // number of uint64_t entries
-  uint64_t accelerateInfoAddr;        // (unslid) address of optimization info
-  uint64_t accelerateInfoSize;        // size of optimization info
-  uint64_t imagesTextOffset;          // file offset to first dyld_cache_image_text_info
-  uint64_t imagesTextCount;           // number of dyld_cache_image_text_info entries
-  uint64_t patchInfoAddr;             // (unslid) address of dyld_cache_patch_info
-  uint64_t patchInfoSize;             // Size of all of the patch information pointed to via the dyld_cache_patch_info
-  uint64_t otherImageGroupAddrUnused; // unused
-  uint64_t otherImageGroupSizeUnused; // unused
-  uint64_t progClosuresAddr;          // (unslid) address of list of program launch closures
-  uint64_t progClosuresSize;          // size of list of program launch closures
-  uint64_t progClosuresTrieAddr;      // (unslid) address of trie of indexes into program launch closures
-  uint64_t progClosuresTrieSize;      // size of trie of indexes into program launch closures
-  uint32_t platform;                  // platform number (macOS=1, etc)
-  uint32_t formatVersion : 8,         // dyld3::closure::kFormatVersion
-      dylibsExpectedOnDisk : 1, // dyld should expect the dylib exists on disk and to compare inode/mtime to see if cache is valid
-      simulator : 1,            // for simulator of specified platform
-      locallyBuiltCache : 1, // 0 for B&I built cache, 1 for locally built cache
-      builtFromChainedFixups : 1, // some dylib in cache was built using chained fixups, so patch tables must be used for overrides
-      padding : 20;               // TBD
-  uint64_t sharedRegionStart;      // base load address of cache if not slid
-  uint64_t sharedRegionSize;       // overall size of region cache can be mapped into
-  uint64_t maxSlide;               // runtime slide of cache can be between zero and this value
-  uint64_t dylibsImageArrayAddr;   // (unslid) address of ImageArray for dylibs in this cache
-  uint64_t dylibsImageArraySize;   // size of ImageArray for dylibs in this cache
-  uint64_t dylibsTrieAddr;         // (unslid) address of trie of indexes of all cached dylibs
-  uint64_t dylibsTrieSize;         // size of trie of cached dylib paths
-  uint64_t otherImageArrayAddr;    // (unslid) address of ImageArray for dylibs and bundles with dlopen closures
-  uint64_t otherImageArraySize;    // size of ImageArray for dylibs and bundles with dlopen closures
-  uint64_t otherTrieAddr;          // (unslid) address of trie of indexes of all dylibs and bundles with dlopen closures
-  uint64_t otherTrieSize;          // size of trie of dylibs and bundles with dlopen closures
-  uint32_t mappingWithSlideOffset; // file offset to first dyld_cache_mapping_and_slide_info
-  uint32_t mappingWithSlideCount;  // number of dyld_cache_mapping_and_slide_info entries
-};
-
-// Uncomment this and check the build errors for the current mapping offset to check against when adding new fields.
-// template<size_t size> class A { int x[-size]; }; A<sizeof(dyld_cache_header)> a;
-
-struct dyld_cache_mapping_info {
-  uint64_t address;
-  uint64_t size;
-  uint64_t fileOffset;
-  uint32_t maxProt;
-  uint32_t initProt;
-};
-
-// Contains the flags for the dyld_cache_mapping_and_slide_info flgs field
-enum {
-  DYLD_CACHE_MAPPING_AUTH_DATA = 1 << 0U,
-  DYLD_CACHE_MAPPING_DIRTY_DATA = 1 << 1U,
-  DYLD_CACHE_MAPPING_CONST_DATA = 1 << 2U,
-};
-
-struct dyld_cache_mapping_and_slide_info {
-  uint64_t address;
-  uint64_t size;
-  uint64_t fileOffset;
-  uint64_t slideInfoFileOffset;
-  uint64_t slideInfoFileSize;
-  uint64_t flags;
-  uint32_t maxProt;
-  uint32_t initProt;
-};
-
-struct dyld_cache_image_info {
-  uint64_t address;
-  uint64_t modTime;
-  uint64_t inode;
-  uint32_t pathFileOffset;
-  uint32_t pad;
-};
-
-struct dyld_cache_image_info_extra {
-  uint64_t exportsTrieAddr; // address of trie in unslid cache
-  uint64_t weakBindingsAddr;
-  uint32_t exportsTrieSize;
-  uint32_t weakBindingsSize;
-  uint32_t dependentsStartArrayIndex;
-  uint32_t reExportsStartArrayIndex;
-};
-
-struct dyld_cache_accelerator_info {
-  uint32_t version;            // currently 1
-  uint32_t imageExtrasCount;   // does not include aliases
-  uint32_t imagesExtrasOffset; // offset into this chunk of first dyld_cache_image_info_extra
-  uint32_t bottomUpListOffset; // offset into this chunk to start of 16-bit array of sorted image indexes
-  uint32_t dylibTrieOffset;    // offset into this chunk to start of trie containing all dylib paths
-  uint32_t dylibTrieSize;      // size of trie containing all dylib paths
-  uint32_t initializersOffset; // offset into this chunk to start of initializers list
-  uint32_t initializersCount;  // size of initializers list
-  uint32_t dofSectionsOffset;  // offset into this chunk to start of DOF sections list
-  uint32_t dofSectionsCount;   // size of initializers list
-  uint32_t reExportListOffset; // offset into this chunk to start of 16-bit array of re-exports
-  uint32_t reExportCount;      // size of re-exports
-  uint32_t depListOffset; // offset into this chunk to start of 16-bit array of dependencies (0x8000 bit set if upward)
-  uint32_t depListCount;  // size of dependencies
-  uint32_t rangeTableOffset; // offset into this chunk to start of ss
-  uint32_t rangeTableCount;  // size of dependencies
-  uint64_t dyldSectionAddr;  // address of libdyld's __dyld section in unslid cache
-};
-
-struct dyld_cache_accelerator_initializer {
-  uint32_t functionOffset; // address offset from start of cache mapping
-  uint32_t imageIndex;
-};
-
-struct dyld_cache_range_entry {
-  uint64_t startAddress; // unslid address of start of region
-  uint32_t size;
-  uint32_t imageIndex;
-};
-
-struct dyld_cache_accelerator_dof {
-  uint64_t sectionAddress; // unslid address of start of region
-  uint32_t sectionSize;
-  uint32_t imageIndex;
-};
-
-struct dyld_cache_image_text_info {
-  uuid_t uuid;
-  uint64_t loadAddress; // unslid address of start of __TEXT
-  uint32_t textSegmentSize;
-  uint32_t pathOffset; // offset from start of cache file
-};
-
-// The rebasing info is to allow the kernel to lazily rebase DATA pages of the
-// dyld shared cache.  Rebasing is adding the slide to interior pointers.
-struct dyld_cache_slide_info {
-  uint32_t version; // currently 1
-  uint32_t toc_offset;
-  uint32_t toc_count;
-  uint32_t entries_offset;
-  uint32_t entries_count;
-  uint32_t entries_size; // currently 128
-                         // uint16_t toc[toc_count];
-                         // entrybitmap entries[entries_count];
-};
-
-struct dyld_cache_slide_info_entry {
-  uint8_t bits[4096 / (8 * 4)]; // 128-byte bitmap
-};
-
-// The version 2 of the slide info uses a different compression scheme. Since
-// only interior pointers (pointers that point within the cache) are rebased
-// (slid), we know the possible range of the pointers and thus know there are
-// unused bits in each pointer.  We use those bits to form a linked list of
-// locations needing rebasing in each page.
-//
-// Definitions:
-//
-//  pageIndex = (pageAddress - startOfAllDataAddress)/info->page_size
-//  pageStarts[] = info + info->page_starts_offset
-//  pageExtras[] = info + info->page_extras_offset
-//  valueMask = ~(info->delta_mask)
-//  deltaShift = __builtin_ctzll(info->delta_mask) - 2
-//
-// There are three cases:
-//
-// 1) pageStarts[pageIndex] == DYLD_CACHE_SLIDE_PAGE_ATTR_NO_REBASE
-//    The page contains no values that need rebasing.
-//
-// 2) (pageStarts[pageIndex] & DYLD_CACHE_SLIDE_PAGE_ATTR_EXTRA) == 0
-//    All rebase locations are in one linked list. The offset of the first
-//    rebase location in the page is pageStarts[pageIndex] * 4.
-//
-// 3) pageStarts[pageIndex] & DYLD_CACHE_SLIDE_PAGE_ATTR_EXTRA
-//      Multiple linked lists are needed for all rebase locations in a page.
-//    The pagesExtras array contains 2 or more entries each of which is the
-//    start of a new linked list in the page. The first is at:
-//       extrasStartIndex = (pageStarts[pageIndex] & 0x3FFF)
-//      The next is at extrasStartIndex+1.  The last is denoted by
-//    having the high bit (DYLD_CACHE_SLIDE_PAGE_ATTR_END) of the pageExtras[]
-//    set.
-//
-// For 64-bit architectures, there is always enough free bits to encode all
-// possible deltas.  The info->delta_mask field shows where the delta is located
-// in the pointer.  That value must be masked off (valueMask) before the slide
-// is added to the pointer.
-//
-// For 32-bit architectures, there are only three bits free (the three most
-// significant bits). To extract the delta, you must first subtract value_add
-// from the pointer value, then AND with delta_mask, then shift by deltaShift.
-// That still leaves a maximum delta to the next rebase location of 28 bytes.
-// To reduce the number or chains needed, an optimization was added.  Turns
-// out zero is common in the DATA region.  A zero can be turned into a
-// non-rebasing entry in the linked list.  The can be done because nothing
-// in the shared cache should point out of its dylib to the start of the shared
-// cache.
-//
-// The code for processing a linked list (chain) is:
-//
-//    uint32_t delta = 1;
-//    while ( delta != 0 ) {
-//        uint8_t* loc = pageStart + pageOffset;
-//        uintptr_t rawValue = *((uintptr_t*)loc);
-//        delta = ((rawValue & deltaMask) >> deltaShift);
-//        uintptr_t newValue = (rawValue & valueMask);
-//        if ( newValue != 0 ) {
-//            newValue += valueAdd;
-//            newValue += slideAmount;
-//        }
-//        *((uintptr_t*)loc) = newValue;
-//        pageOffset += delta;
-//    }
-//
-//
-struct dyld_cache_slide_info2 {
-  uint32_t version;   // currently 2
-  uint32_t page_size; // currently 4096 (may also be 16384)
-  uint32_t page_starts_offset;
-  uint32_t page_starts_count;
-  uint32_t page_extras_offset;
-  uint32_t page_extras_count;
-  uint64_t delta_mask; // which (contiguous) set of bits contains the delta to the next rebase location
-  uint64_t value_add;
-  //uint16_t    page_starts[page_starts_count];
-  //uint16_t    page_extras[page_extras_count];
-};
-#define DYLD_CACHE_SLIDE_PAGE_ATTRS 0xC000          // high bits of uint16_t are flags
-#define DYLD_CACHE_SLIDE_PAGE_ATTR_EXTRA 0x8000     // index is into extras array (not starts array)
-#define DYLD_CACHE_SLIDE_PAGE_ATTR_NO_REBASE 0x4000 // page has no rebasing
-#define DYLD_CACHE_SLIDE_PAGE_ATTR_END 0x8000       // last chain entry for page
-
-// The version 3 of the slide info uses a different compression scheme. Since
-// only interior pointers (pointers that point within the cache) are rebased
-// (slid), we know the possible range of the pointers and thus know there are
-// unused bits in each pointer.  We use those bits to form a linked list of
-// locations needing rebasing in each page.
-//
-// Definitions:
-//
-//  pageIndex = (pageAddress - startOfAllDataAddress)/info->page_size
-//  pageStarts[] = info + info->page_starts_offset
-//
-// There are two cases:
-//
-// 1) pageStarts[pageIndex] == DYLD_CACHE_SLIDE_V3_PAGE_ATTR_NO_REBASE
-//    The page contains no values that need rebasing.
-//
-// 2) otherwise...
-//    All rebase locations are in one linked list. The offset of the first
-//    rebase location in the page is pageStarts[pageIndex].
-//
-// A pointer is one of of the variants in dyld_cache_slide_pointer3
-//
-// The code for processing a linked list (chain) is:
-//
-//    uint32_t delta = pageStarts[pageIndex];
-//    dyld_cache_slide_pointer3* loc = pageStart;
-//    do {
-//        loc += delta;
-//        delta = loc->offsetToNextPointer;
-//        if ( loc->auth.authenticated ) {
-//            newValue = loc->offsetFromSharedCacheBase  + results->slide + auth_value_add;
-//            newValue = sign_using_the_various_bits(newValue);
-//        }
-//        else {
-//            uint64_t value51      = loc->pointerValue;
-//            uint64_t top8Bits     = value51 & 0x0007F80000000000ULL;
-//            uint64_t bottom43Bits = value51 & 0x000007FFFFFFFFFFULL;
-//            uint64_t targetValue  = ( top8Bits << 13 ) | bottom43Bits;
-//            newValue = targetValue + results->slide;
-//        }
-//        loc->raw = newValue;
-//    } while (delta != 0);
-//
-//
-struct dyld_cache_slide_info3 {
-  uint32_t version;   // currently 3
-  uint32_t page_size; // currently 4096 (may also be 16384)
-  uint32_t page_starts_count;
-  uint64_t auth_value_add;
-  uint16_t page_starts[/* page_starts_count */];
-};
-
-#define DYLD_CACHE_SLIDE_V3_PAGE_ATTR_NO_REBASE 0xFFFF // page has no rebasing
-
-union dyld_cache_slide_pointer3 {
-  uint64_t raw;
-  struct {
-    uint64_t pointerValue : 51, offsetToNextPointer : 11, unused : 2;
-  } plain;
-
-  struct {
-    uint64_t offsetFromSharedCacheBase : 32, diversityData : 16, hasAddressDiversity : 1, key : 2,
-        offsetToNextPointer : 11, unused : 1,
-        authenticated : 1; // = 1;
-  } auth;
-};
-
-// The version 4 of the slide info is optimized for 32-bit caches up to 1GB.
-// Since only interior pointers (pointers that point within the cache) are rebased
-// (slid), we know the possible range of the pointers takes 30 bits.  That
-// gives us two bits to use to chain to the next rebase.
-//
-// Definitions:
-//
-//  pageIndex = (pageAddress - startOfAllDataAddress)/info->page_size
-//  pageStarts[] = info + info->page_starts_offset
-//  pageExtras[] = info + info->page_extras_offset
-//  valueMask = ~(info->delta_mask)
-//  deltaShift = __builtin_ctzll(info->delta_mask) - 2
-//
-// There are three cases:
-//
-// 1) pageStarts[pageIndex] == DYLD_CACHE_SLIDE4_PAGE_NO_REBASE
-//    The page contains no values that need rebasing.
-//
-// 2) (pageStarts[pageIndex] & DYLD_CACHE_SLIDE4_PAGE_USE_EXTRA) == 0
-//    All rebase locations are in one linked list. The offset of the first
-//    rebase location in the page is pageStarts[pageIndex] * 4.
-//
-// 3) pageStarts[pageIndex] & DYLD_CACHE_SLIDE4_PAGE_USE_EXTRA
-//    Multiple chains are needed for all rebase locations in a page.
-//    The pagesExtras array contains 2 or more entries each of which is the
-//    start of a new chain in the page. The first is at:
-//       extrasStartIndex = (pageStarts[pageIndex] & DYLD_CACHE_SLIDE4_PAGE_INDEX)
-//    The next is at extrasStartIndex+1.  The last is denoted by
-//    having the high bit (DYLD_CACHE_SLIDE4_PAGE_EXTRA_END) of the pageExtras[].
-//
-// For 32-bit architectures, there are only two bits free (the two most
-// significant bits). To extract the delta, you must first subtract value_add
-// from the pointer value, then AND with delta_mask, then shift by deltaShift.
-// That still leaves a maximum delta to the next rebase location of 12 bytes.
-// To reduce the number or chains needed, an optimization was added.  Turns
-// most of the non-rebased data are small values and can be co-opt'ed into
-// being used in the chain. The can be done because nothing
-// in the shared cache should point to the first 64KB which are in the shared
-// cache header information. So if the resulting pointer points to the
-// start of the cache +/-32KB, then it is actually a small number that should
-// not be rebased, but just reconstituted.
-//
-// The code for processing a linked list (chain) is:
-//
-//    uint32_t delta = 1;
-//    while ( delta != 0 ) {
-//        uint8_t* loc = pageStart + pageOffset;
-//        uint32_t rawValue = *((uint32_t*)loc);
-//        delta = ((rawValue & deltaMask) >> deltaShift);
-//        uintptr_t newValue = (rawValue & valueMask);
-//        if ( (newValue & 0xFFFF8000) == 0 ) {
-//           // small positive non-pointer, use as-is
-//        }
-//        else if ( (newValue & 0x3FFF8000) == 0x3FFF8000 ) {
-//           // small negative non-pointer
-//           newValue |= 0xC0000000;
-//        }
-//        else  {
-//            // pointer that needs rebasing
-//            newValue += valueAdd;
-//            newValue += slideAmount;
-//        }
-//        *((uint32_t*)loc) = newValue;
-//        pageOffset += delta;
-//    }
-//
-//
-struct dyld_cache_slide_info4 {
-  uint32_t version;   // currently 4
-  uint32_t page_size; // currently 4096 (may also be 16384)
-  uint32_t page_starts_offset;
-  uint32_t page_starts_count;
-  uint32_t page_extras_offset;
-  uint32_t page_extras_count;
-  uint64_t delta_mask; // which (contiguous) set of bits contains the delta to the next rebase location (0xC0000000)
-  uint64_t value_add;  // base address of cache
-                       //uint16_t    page_starts[page_starts_count];
-                       //uint16_t    page_extras[page_extras_count];
-};
-#define DYLD_CACHE_SLIDE4_PAGE_NO_REBASE 0xFFFF // page has no rebasing
-#define DYLD_CACHE_SLIDE4_PAGE_INDEX 0x7FFF     // mask of page_starts[] values
-#define DYLD_CACHE_SLIDE4_PAGE_USE_EXTRA 0x8000 // index is into extras array (not a chain start offset)
-#define DYLD_CACHE_SLIDE4_PAGE_EXTRA_END 0x8000 // last chain entry for page
-
-struct dyld_cache_local_symbols_info {
-  uint32_t nlistOffset;   // offset into this chunk of nlist entries
-  uint32_t nlistCount;    // count of nlist entries
-  uint32_t stringsOffset; // offset into this chunk of string pool
-  uint32_t stringsSize;   // byte count of string pool
-  uint32_t entriesOffset; // offset into this chunk of array of dyld_cache_local_symbols_entry
-  uint32_t entriesCount;  // number of elements in dyld_cache_local_symbols_entry array
-};
-
-struct dyld_cache_local_symbols_entry {
-  uint32_t dylibOffset;     // offset in cache file of start of dylib
-  uint32_t nlistStartIndex; // start index of locals for this dylib
-  uint32_t nlistCount;      // number of local symbols for this dylib
-};
-
-struct dyld_cache_patch_info {
-  uint64_t patchTableArrayAddr;     // (unslid) address of array for dyld_cache_image_patches for each image
-  uint64_t patchTableArrayCount;    // count of patch table entries
-  uint64_t patchExportArrayAddr;    // (unslid) address of array for patch exports for each image
-  uint64_t patchExportArrayCount;   // count of patch exports entries
-  uint64_t patchLocationArrayAddr;  // (unslid) address of array for patch locations for each patch
-  uint64_t patchLocationArrayCount; // count of patch location entries
-  uint64_t patchExportNamesAddr;    // blob of strings of export names for patches
-  uint64_t patchExportNamesSize;    // size of string blob of export names for patches
-};
-
-struct dyld_cache_image_patches {
-  uint32_t patchExportsStartIndex;
-  uint32_t patchExportsCount;
-};
-
-struct dyld_cache_patchable_export {
-  uint32_t cacheOffsetOfImpl;
-  uint32_t patchLocationsStartIndex;
-  uint32_t patchLocationsCount;
-  uint32_t exportNameOffset;
-};
-
-struct dyld_cache_patchable_location {
-  uint64_t cacheOffset : 32, high7 : 7,
-      addend : 5, // 0..31
-      authenticated : 1, usesAddressDiversity : 1, key : 2, discriminator : 16;
-};
-
-// This is the  location of the macOS shared cache on macOS 11.0 and later
-#define MACOSX_MRM_DYLD_SHARED_CACHE_DIR "/System/Library/dyld/"
-
-// This is old define for the old location of the dyld cache
-#define MACOSX_DYLD_SHARED_CACHE_DIR MACOSX_MRM_DYLD_SHARED_CACHE_DIR
-
-#define IPHONE_DYLD_SHARED_CACHE_DIR "/System/Library/Caches/com.apple.dyld/"
-#if !TARGET_OS_SIMULATOR
-#define DYLD_SHARED_CACHE_BASE_NAME "dyld_shared_cache_"
-#else
-#define DYLD_SHARED_CACHE_BASE_NAME "dyld_sim_shared_cache_"
-#endif
-#define DYLD_SHARED_CACHE_DEVELOPMENT_EXT ".development"
-
-static const uint64_t kDyldSharedCacheTypeDevelopment = 0;
-static const uint64_t kDyldSharedCacheTypeProduction = 1;
-
-#endif // __DYLD_CACHE_FORMAT__
diff --git a/loader/dobby/builtin-plugin/SymbolResolver/macho/shared_cache_internal.h b/loader/dobby/builtin-plugin/SymbolResolver/macho/shared_cache_internal.h
deleted file mode 100644
index 928cbe3e..00000000
--- a/loader/dobby/builtin-plugin/SymbolResolver/macho/shared_cache_internal.h
+++ /dev/null
@@ -1,70 +0,0 @@
-#include <mach-o/dyld.h>
-#include <mach-o/loader.h>
-#include <mach-o/nlist.h>
-
-#if defined(__LP64__)
-typedef struct mach_header_64 mach_header_t;
-typedef struct segment_command_64 segment_command_t;
-typedef struct section_64 section_t;
-typedef struct nlist_64 nlist_t;
-#define LC_SEGMENT_ARCH_DEPENDENT LC_SEGMENT_64
-#else
-typedef struct mach_header mach_header_t;
-typedef struct segment_command segment_command_t;
-typedef struct section section_t;
-typedef struct nlist nlist_t;
-#define LC_SEGMENT_ARCH_DEPENDENT LC_SEGMENT
-#endif
-
-#if __i386__
-#define ARCH_NAME "i386"
-#define ARCH_CACHE_MAGIC "dyld_v1    i386"
-#elif __x86_64__
-#define ARCH_NAME "x86_64"
-#define ARCH_CACHE_MAGIC "dyld_v1  x86_64"
-#define ARCH_NAME_H "x86_64h"
-#define ARCH_CACHE_MAGIC_H "dyld_v1 x86_64h"
-#elif __ARM_ARCH_7K__
-#define ARCH_NAME "armv7k"
-#define ARCH_CACHE_MAGIC "dyld_v1  armv7k"
-#elif __ARM_ARCH_7A__
-#define ARCH_NAME "armv7"
-#define ARCH_CACHE_MAGIC "dyld_v1   armv7"
-#elif __ARM_ARCH_7S__
-#define ARCH_NAME "armv7s"
-#define ARCH_CACHE_MAGIC "dyld_v1  armv7s"
-#elif __arm64e__
-#define ARCH_NAME "arm64e"
-#define ARCH_CACHE_MAGIC "dyld_v1  arm64e"
-#elif __arm64__
-#if __LP64__
-#define ARCH_NAME "arm64"
-#define ARCH_CACHE_MAGIC "dyld_v1   arm64"
-#else
-#define ARCH_NAME "arm64_32"
-#define ARCH_CACHE_MAGIC "dyld_v1arm64_32"
-#endif
-#endif
-
-typedef uintptr_t addr_t;
-
-typedef struct shared_cache_ctx {
-  struct dyld_cache_header *runtime_shared_cache;
-  struct dyld_cache_header *mmap_shared_cache;
-
-  uintptr_t runtime_slide;
-
-  struct dyld_cache_local_symbols_info *local_symbols_info;
-  struct dyld_cache_local_symbols_entry *local_symbols_entries;
-
-  nlist_t *symtab;
-  char *strtab;
-
-} shared_cache_ctx_t;
-
-int shared_cache_ctx_init(shared_cache_ctx_t *ctx);
-
-bool shared_cache_is_contain(shared_cache_ctx_t *ctx, addr_t addr, size_t length);
-
-int shared_cache_get_symbol_table(shared_cache_ctx_t *ctx, mach_header_t *image_header, nlist_t **out_symtab,
-                                  uint32_t *out_symtab_count, char **out_strtab);
diff --git a/loader/dobby/builtin-plugin/SymbolResolver/pe/dobby_symbol_resolver.cc b/loader/dobby/builtin-plugin/SymbolResolver/pe/dobby_symbol_resolver.cc
deleted file mode 100644
index 65920a0c..00000000
--- a/loader/dobby/builtin-plugin/SymbolResolver/pe/dobby_symbol_resolver.cc
+++ /dev/null
@@ -1,26 +0,0 @@
-#include "SymbolResolver/dobby_symbol_resolver.h"
-#include "common_header.h"
-
-#include <windows.h>
-
-#include <string>
-#include <string.h>
-
-#include "PlatformUtil/ProcessRuntimeUtility.h"
-
-#include <vector>
-
-#undef LOG_TAG
-#define LOG_TAG "DobbySymbolResolver"
-
-PUBLIC void *DobbySymbolResolver(const char *image_name, const char *symbol_name_pattern) {
-  void *result = NULL;
-
-  HMODULE hMod = LoadLibraryExA(image_name, NULL, DONT_RESOLVE_DLL_REFERENCES);
-  result = GetProcAddress(hMod, symbol_name_pattern);
-  if (result)
-    return result;
-
-  //result = resolve_elf_internal_symbol(image_name, symbol_name_pattern);
-  return result;
-}
\ No newline at end of file
diff --git a/loader/dobby/cmake/AutoFiles.cmake b/loader/dobby/cmake/AutoFiles.cmake
deleted file mode 100644
index 86caa7df..00000000
--- a/loader/dobby/cmake/AutoFiles.cmake
+++ /dev/null
@@ -1,32 +0,0 @@
-function (AutoFiles _folder _base _pattern)
-    if (ARGC GREATER 3)
-        set(_exclude ${ARGN})
-    else ()
-        set(_exclude)
-    endif ()
-    file (GLOB _files RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/ ${_folder}/*)
-    set (folderFiles)
-    foreach (_fname ${_files})
-        if (IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/${_fname})
-            AutoFiles ("${_fname}" "${_base}" "${_pattern}" "${_exclude}")
-        elseif (_fname MATCHES ${_pattern})
-            if(_exclude)
-                if (NOT _fname MATCHES ${_exclude})
-                    set(folderFiles ${folderFiles} ${_fname})
-                endif ()
-            else ()
-                set(folderFiles ${folderFiles} ${_fname})
-            endif ()
-        endif ()
-    endforeach ()
-
-    string(REPLACE "./" "" _folder2 ${_folder})
-    string(REPLACE "/" "\\" _folder2 ${_folder2})
-    if (_folder2 STREQUAL ".")
-        source_group(${_base} FILES ${folderFiles})
-    else ()
-        source_group(${_base}\\${_folder2} FILES ${folderFiles})
-    endif ()
-
-    set(AUTO_FILES_RESULT ${AUTO_FILES_RESULT} ${folderFiles} PARENT_SCOPE)
-endfunction ()
\ No newline at end of file
diff --git a/loader/dobby/cmake/Globals.cmake b/loader/dobby/cmake/Globals.cmake
deleted file mode 100644
index 97f5736e..00000000
--- a/loader/dobby/cmake/Globals.cmake
+++ /dev/null
@@ -1,88 +0,0 @@
-# The Lib Prefix
-if (UNIX)
-  set(LIB_PFX "lib")
-  if (APPLE)
-    set(LIB_EXT ".dylib")
-  else ()
-    set(LIB_EXT ".so")
-  endif ()
-else (UNIX)
-  set(LIB_PFX "")
-  set(LIB_EXT ".dll")
-endif (UNIX)
-
-message(STATUS "")
-message(STATUS "********* build-environment-detected ***********")
-
-
-# The Compilter ID
-if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "AppleClang")
-  set(COMPILER.Clang 1)
-elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
-  set(COMPILER.Gcc 1)
-elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Intel")
-elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
-  set(COMPILER.MSVC 1)
-else()
-  message (FATAL_ERROR "Compiler ${CMAKE_CXX_COMPILER_ID} not configured")
-endif()
-message(STATUS "\tCompiler: \t ${CMAKE_CXX_COMPILER_ID}")
-
-if(MSVC)
-  string(TOLOWER ${MSVC_CXX_ARCHITECTURE_ID} CMAKE_SYSTEM_PROCESSOR)
-  set(CMAKE_SYSTEM_PROCESSOR ${MSVC_CXX_ARCHITECTURE_ID})
-endif()
-
-string(TOLOWER ${CMAKE_SYSTEM_PROCESSOR} CMAKE_SYSTEM_PROCESSOR)
-
-# The Processor
-if(CMAKE_SYSTEM_PROCESSOR MATCHES "amd64.*|x86_64.*|AMD64.*|x64.*")
-  set(PROCESSOR.X86_64 1)
-elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "i686.*|i386.*|x86.*|amd64.*|AMD64.*")
-  set(PROCESSOR.X86 1)
-elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^arm64.*")
-  set(PROCESSOR.AARCH64 1)
-elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^(aarch64.*|AARCH64.*)")
-  set(PROCESSOR.AARCH64 1)
-elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^(arm.*|ARM.*)")
-  set(PROCESSOR.ARM 1)
-elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^(powerpc|ppc)64le")
-  message(STATUS "NOT SUPPORT ${CMAKE_SYSTEM_PROCESSOR}")
-  set(PROCESSOR.PPC64LE 1)
-elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^(powerpc|ppc)64")
-  message(STATUS "NOT SUPPORT ${CMAKE_SYSTEM_PROCESSOR}")
-  set(PROCESSOR.PPC64 1)
-else()
-  message (FATAL_ERROR "Processor ${CMAKE_SYSTEM_PROCESSOR} not configured")
-endif()
-message(STATUS "\tProcessor:\t ${CMAKE_SYSTEM_PROCESSOR}")
-
-# The System
-if(CMAKE_SYSTEM_NAME MATCHES "^Android")
-  set(SYSTEM.Android 1)
-elseif(CMAKE_SYSTEM_NAME MATCHES "^Windows" OR CMAKE_SYSTEM_NAME MATCHES "^Win32")
-  set(SYSTEM.Windows 1)
-elseif(CMAKE_SYSTEM_NAME MATCHES "^Linux")
-  set(SYSTEM.Linux 1)
-elseif(CMAKE_SYSTEM_NAME MATCHES "^iOS")
-  set(SYSTEM.iOS 1)
-  set(SYSTEM.Darwin 1)
-elseif(CMAKE_SYSTEM_NAME MATCHES "^MacOS")
-  set(SYSTEM.macOS 1)
-  set(SYSTEM.Darwin 1)
-elseif(CMAKE_SYSTEM_NAME MATCHES "^Darwin")
-  if(PROCESSOR.AARCH64 OR PROCESSOR.ARM)
-    set(CMAKE_SYSTEM_NAME "iOS")
-    set(SYSTEM.iOS 1)
-  elseif(PROCESSOR.X86 OR PROCESSOR.X86_64)
-    set(CMAKE_SYSTEM_NAME "MacOS")
-    set(SYSTEM.macOS 1)
-  endif()
-  set(SYSTEM.Darwin 1)
-else()
-  message (FATAL_ERROR "System ${CMAKE_SYSTEM_NAME} not configured")
-endif()
-message(STATUS "\tSystem:   \t ${CMAKE_SYSTEM_NAME}")
-
-message(STATUS "***************************************")
-message(STATUS "")
diff --git a/loader/dobby/cmake/Macros.cmake b/loader/dobby/cmake/Macros.cmake
deleted file mode 100644
index 5774bef5..00000000
--- a/loader/dobby/cmake/Macros.cmake
+++ /dev/null
@@ -1,3 +0,0 @@
-macro(SET_OPTION option value)
-    set(${option} ${value} CACHE INTERNAL "" FORCE)
-endmacro()
\ No newline at end of file
diff --git a/loader/dobby/cmake/Util.cmake b/loader/dobby/cmake/Util.cmake
deleted file mode 100644
index 6a722a20..00000000
--- a/loader/dobby/cmake/Util.cmake
+++ /dev/null
@@ -1,19 +0,0 @@
-# Check files list exist
-function(check_files_exist CHECK_FILES)
-    foreach(file ${CHECK_FILES})
-        if(NOT EXISTS "${file}")
-            message(FATAL_ERROR "${file} NOT EXISTS!")
-        endif()
-    endforeach()
-endfunction(check_files_exist CHECK_FILES)
-
-# Search suffix files
-function(search_suffix_files suffix INPUT_VARIABLE OUTPUT_VARIABLE)
-    set(ResultFiles )
-    foreach(filePath ${${INPUT_VARIABLE}})
-        # message(STATUS "[*] searching *.${suffix} from ${filePath}")
-        file(GLOB files ${filePath}/*.${suffix})
-        set(ResultFiles ${ResultFiles} ${files})
-    endforeach()
-    set(${OUTPUT_VARIABLE} ${ResultFiles} PARENT_SCOPE)
-endfunction()
diff --git a/loader/dobby/cmake/XcodeGenerator.cmake b/loader/dobby/cmake/XcodeGenerator.cmake
deleted file mode 100644
index 243593dc..00000000
--- a/loader/dobby/cmake/XcodeGenerator.cmake
+++ /dev/null
@@ -1,9 +0,0 @@
-if(CMAKE_GENERATOR STREQUAL Xcode)
-    message(STATUS "[*] Detect Xcode Project")
-    set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG ${CMAKE_BINARY_DIR}/build/Debug)
-    set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR}/build/Release)
-    set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG ${CMAKE_BINARY_DIR}/build/Debug)
-    set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR}/build/Release)
-    set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_BINARY_DIR}/build/Debug)
-    set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR}/build/Release)
-endif()
\ No newline at end of file
diff --git a/loader/dobby/cmake/dobby.xcode.source.cmake b/loader/dobby/cmake/dobby.xcode.source.cmake
deleted file mode 100644
index 3ab900f4..00000000
--- a/loader/dobby/cmake/dobby.xcode.source.cmake
+++ /dev/null
@@ -1,96 +0,0 @@
-set(dobby.SOURCE_FILE_LIST
-  # cpu
-  source/core/arch/CpuFeature.cc
-  source/core/arch/CpuRegister.cc
-
-  # cpu - x86
-  source/core/arch/x86/cpu-x86.cc
-
-  # assembler
-  source/core/modules/assembler/assembler.cc
-  source/core/modules/assembler/assembler-arm.cc
-  source/core/modules/assembler/assembler-arm64.cc
-  source/core/modules/assembler/assembler-ia32.cc
-  source/core/modules/assembler/assembler-x64.cc
-
-  # codegen
-  source/core/modules/codegen/codegen-arm.cc
-  source/core/modules/codegen/codegen-arm64.cc
-  source/core/modules/codegen/codegen-ia32.cc
-  source/core/modules/codegen/codegen-x64.cc
-
-  # executable memory - code buffer
-  source/MemoryAllocator/CodeBuffer/CodeBufferBase.cc
-  source/MemoryAllocator/CodeBuffer/code-buffer-arm.cc
-  source/MemoryAllocator/CodeBuffer/code-buffer-arm64.cc
-  source/MemoryAllocator/CodeBuffer/code-buffer-x86.cc
-  source/MemoryAllocator/CodeBuffer/code-buffer-x64.cc
-
-  # executable memory
-  source/MemoryAllocator/AssemblyCodeBuilder.cc
-  source/MemoryAllocator/MemoryArena.cc
-
-  # instruction relocation
-  source/InstructionRelocation/arm/ARMInstructionRelocation.cc
-  source/InstructionRelocation/arm64/ARM64InstructionRelocation.cc
-  source/InstructionRelocation/x86/X86InstructionRelocation.cc
-  source/InstructionRelocation/x64/X64InstructionRelocation.cc
-
-  source/InstructionRelocation/x86/x86_insn_decode/x86_insn_decode.c
-
-  # intercept routing
-  source/InterceptRouting/InterceptRouting.cpp
-
-  # intercept routing trampoline
-  source/TrampolineBridge/Trampoline/arm/trampoline-arm.cc
-  source/TrampolineBridge/Trampoline/arm64/trampoline-arm64.cc
-  source/TrampolineBridge/Trampoline/x86/trampoline-x86.cc
-  source/TrampolineBridge/Trampoline/x64/trampoline-x64.cc
-
-  # intercept routing plugin (buildin)
-  source/InterceptRouting/Routing/FunctionInlineReplace/function-inline-replace.cc
-  source/InterceptRouting/Routing/FunctionInlineReplace/FunctionInlineReplaceExport.cc
-
-  # plugin register
-  source/InterceptRouting/RoutingPlugin/RoutingPlugin.cc
-
-  # unified interface
-
-  # platform util
-  source/UserMode/PlatformUtil/${platform2}/ProcessRuntimeUtility.cc
-
-  # user mode - platform interface
-  source/UserMode/UnifiedInterface/platform-${platform1}.cc
-
-  # user mode - executable memory
-  source/UserMode/ExecMemory/code-patch-tool-${platform1}.cc
-  source/UserMode/ExecMemory/clear-cache-tool-all.c
-
-  # main
-  source/dobby.cpp
-  source/Interceptor.cpp
-  )
-
-if(FunctionWrapper OR DynamicBinaryInstrument)
-  set(dobby.SOURCE_FILE_LIST ${dobby.SOURCE_FILE_LIST}
-    # closure trampoline bridge
-    source/TrampolineBridge/ClosureTrampolineBridge/common-bridge-handler.cc
-
-    source/TrampolineBridge/ClosureTrampolineBridge/arm/helper-arm.cc
-    source/TrampolineBridge/ClosureTrampolineBridge/arm/closure-bridge-arm.cc
-    source/TrampolineBridge/ClosureTrampolineBridge/arm/ARMAssemblyClosureTrampoline.cc
-
-    source/TrampolineBridge/ClosureTrampolineBridge/arm64/helper-arm64.cc
-    source/TrampolineBridge/ClosureTrampolineBridge/arm64/closure-bridge-arm64.cc
-    source/TrampolineBridge/ClosureTrampolineBridge/arm64/ARM64AssemblyClosureTrampoline.cc
-
-    source/TrampolineBridge/ClosureTrampolineBridge/x64/helper-x64.cc
-    source/TrampolineBridge/ClosureTrampolineBridge/x64/closure-bridge-x64.cc
-    source/TrampolineBridge/ClosureTrampolineBridge/x64/X64AssemblyClosureTrampoline.cc
-
-    # user mode - multi thread support
-    source/UserMode/MultiThreadSupport/ThreadSupport.cpp
-    source/UserMode/Thread/PlatformThread.cc
-    source/UserMode/Thread/platform-thread-${platform1}.cc
-    )
-endif()
diff --git a/loader/dobby/cmake/ios.toolchain.cmake b/loader/dobby/cmake/ios.toolchain.cmake
deleted file mode 100644
index df6485b6..00000000
--- a/loader/dobby/cmake/ios.toolchain.cmake
+++ /dev/null
@@ -1,641 +0,0 @@
-# This file is part of the ios-cmake project. It was retrieved from
-# https://github.com/cristeab/ios-cmake.git, which is a fork of
-# https://code.google.com/p/ios-cmake/. Which in turn is based off of
-# the Platform/Darwin.cmake and Platform/UnixPaths.cmake files which
-# are included with CMake 2.8.4
-#
-# The ios-cmake project is licensed under the new BSD license.
-#
-# Copyright (c) 2014, Bogdan Cristea and LTE Engineering Software,
-# Kitware, Inc., Insight Software Consortium.  All rights reserved.
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-# 1. Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#
-# 2. Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in the
-# documentation and/or other materials provided with the distribution.
-#
-# 3. Neither the name of the copyright holder nor the names of its
-# contributors may be used to endorse or promote products derived from
-# this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-# COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-# CAUSED AND ON ANY 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.
-#
-# This file is based off of the Platform/Darwin.cmake and
-# Platform/UnixPaths.cmake files which are included with CMake 2.8.4
-# It has been altered for iOS development.
-#
-# Updated by Alex Stewart (alexs.mac@gmail.com)
-#
-# *****************************************************************************
-#      Now maintained by Alexander Widerberg (widerbergaren [at] gmail.com)
-#                      under the BSD-3-Clause license
-#                   https://github.com/leetal/ios-cmake
-# *****************************************************************************
-#
-#                           INFORMATION / HELP
-#
-# The following arguments control the behaviour of this toolchain:
-#
-# PLATFORM: (default "OS")
-#    OS = Build for iPhoneOS.
-#    OS64 = Build for arm64 iphoneOS.
-#    OS64COMBINED = Build for arm64 x86_64 iphoneOS. Combined into FAT STATIC lib (supported on 3.14+ of CMakewith "-G Xcode" argument ONLY)
-#    SIMULATOR = Build for x86 i386 iphoneOS Simulator.
-#    SIMULATOR64 = Build for x86_64 iphoneOS Simulator.
-#    TVOS = Build for arm64 tvOS.
-#    TVOSCOMBINED = Build for arm64 x86_64 tvOS. Combined into FAT STATIC lib (supported on 3.14+ of CMake with "-G Xcode" argument ONLY)
-#    SIMULATOR_TVOS = Build for x86_64 tvOS Simulator.
-#    WATCHOS = Build for armv7k arm64_32 for watchOS.
-#    WATCHOSCOMBINED = Build for armv7k arm64_32 x86_64 watchOS. Combined into FAT STATIC lib (supported on 3.14+ of CMake with "-G Xcode" argument ONLY)
-#    SIMULATOR_WATCHOS = Build for x86_64 for watchOS Simulator.
-#
-# CMAKE_OSX_SYSROOT: Path to the SDK to use.  By default this is
-#    automatically determined from PLATFORM and xcodebuild, but
-#    automatically determined from PLATFORM and xcodebuild, but
-#    can also be manually specified (although this should not be required).
-#
-# CMAKE_DEVELOPER_ROOT: Path to the Developer directory for the platform
-#    being compiled for.  By default this is automatically determined from
-#    CMAKE_OSX_SYSROOT, but can also be manually specified (although this should
-#    not be required).
-#
-# DEPLOYMENT_TARGET: Minimum SDK version to target. Default 2.0 on watchOS and 9.0 on tvOS+iOS
-#
-# ENABLE_BITCODE: (1|0) Enables or disables bitcode support. Default 1 (true)
-#
-# ENABLE_ARC: (1|0) Enables or disables ARC support. Default 1 (true, ARC enabled by default)
-#
-# ENABLE_VISIBILITY: (1|0) Enables or disables symbol visibility support. Default 0 (false, visibility hidden by default)
-#
-# ARCHS: (armv7 armv7s armv7k arm64 arm64_32 i386 x86_64) If specified, will override the default architectures for the given PLATFORM
-#    OS = armv7 armv7s arm64 (if applicable)
-#    OS64 = arm64 (if applicable)
-#    SIMULATOR = i386
-#    SIMULATOR64 = x86_64
-#    TVOS = arm64
-#    SIMULATOR_TVOS = x86_64 (i386 has since long been deprecated)
-#    WATCHOS = armv7k arm64_32 (if applicable)
-#    SIMULATOR_WATCHOS = x86_64 (i386 has since long been deprecated)
-#
-# This toolchain defines the following variables for use externally:
-#
-# XCODE_VERSION: Version number (not including Build version) of Xcode detected.
-# SDK_VERSION: Version of SDK being used.
-# CMAKE_OSX_ARCHITECTURES: Architectures being compiled for (generated from PLATFORM).
-#
-# This toolchain defines the following macros for use externally:
-#
-# set_xcode_property (TARGET XCODE_PROPERTY XCODE_VALUE XCODE_VARIANT)
-#   A convenience macro for setting xcode specific properties on targets.
-#   Available variants are: All, Release, RelWithDebInfo, Debug, MinSizeRel
-#   example: set_xcode_property (myioslib IPHONEOS_DEPLOYMENT_TARGET "3.1" "all").
-#
-# find_host_package (PROGRAM ARGS)
-#   A macro used to find executable programs on the host system, not within the
-#   environment.  Thanks to the android-cmake project for providing the
-#   command.
-#
-# ******************************** DEPRECATIONS *******************************
-#
-# IOS_DEPLOYMENT_TARGET: (Deprecated) Alias to DEPLOYMENT_TARGET
-# CMAKE_IOS_DEVELOPER_ROOT: (Deprecated) Alias to CMAKE_DEVELOPER_ROOT
-# IOS_PLATFORM: (Deprecated) Alias to PLATFORM
-# IOS_ARCH: (Deprecated) Alias to ARCHS
-#
-# *****************************************************************************
-#
-
-# Fix for PThread library not in path
-set(CMAKE_THREAD_LIBS_INIT "-lpthread")
-set(CMAKE_HAVE_THREADS_LIBRARY 1)
-set(CMAKE_USE_WIN32_THREADS_INIT 0)
-set(CMAKE_USE_PTHREADS_INIT 1)
-
-# Cache what generator is used
-set(USED_CMAKE_GENERATOR "${CMAKE_GENERATOR}" CACHE STRING "Expose CMAKE_GENERATOR" FORCE)
-
-if(${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.14")
-  set(MODERN_CMAKE YES)
-  message(STATUS "Merging integrated CMake 3.14+ iOS,tvOS,watchOS,macOS toolchain(s) with this toolchain!")
-endif()
-
-# Get the Xcode version being used.
-execute_process(COMMAND xcodebuild -version
-  OUTPUT_VARIABLE XCODE_VERSION
-  ERROR_QUIET
-  OUTPUT_STRIP_TRAILING_WHITESPACE)
-string(REGEX MATCH "Xcode [0-9\\.]+" XCODE_VERSION "${XCODE_VERSION}")
-string(REGEX REPLACE "Xcode ([0-9\\.]+)" "\\1" XCODE_VERSION "${XCODE_VERSION}")
-message(STATUS "Building with Xcode version: ${XCODE_VERSION}")
-
-######## ALIASES (DEPRECATION WARNINGS)
-
-if(DEFINED IOS_PLATFORM)
-  set(PLATFORM ${IOS_PLATFORM})
-  message(DEPRECATION "IOS_PLATFORM argument is DEPRECATED. Consider using the new PLATFORM argument instead.")
-endif()
-
-if(DEFINED IOS_DEPLOYMENT_TARGET)
-  set(DEPLOYMENT_TARGET ${IOS_DEPLOYMENT_TARGET})
-  message(DEPRECATION "CMAKE_IOS_DEVELOPER_ROOT argument is DEPRECATED. Consider using the new CMAKE_DEVELOPER_ROOT argument instead.")
-endif()
-
-if(DEFINED CMAKE_IOS_DEVELOPER_ROOT)
-  set(CMAKE_DEVELOPER_ROOT ${CMAKE_IOS_DEVELOPER_ROOT})
-  message(DEPRECATION "CMAKE_IOS_DEVELOPER_ROOT argument is DEPRECATED. Consider using the new CMAKE_DEVELOPER_ROOT argument instead.")
-endif()
-
-if(DEFINED IOS_ARCH)
-  set(ARCHS ${IOS_ARCH})
-  message(DEPRECATION "IOS_ARCH argument is DEPRECATED. Consider using the new ARCHS argument instead.")
-endif()
-
-######## END ALIASES
-
-# Default to building for iPhoneOS if not specified otherwise, and we cannot
-# determine the platform from the CMAKE_OSX_ARCHITECTURES variable. The use
-# of CMAKE_OSX_ARCHITECTURES is such that try_compile() projects can correctly
-# determine the value of PLATFORM from the root project, as
-# CMAKE_OSX_ARCHITECTURES is propagated to them by CMake.
-if (NOT DEFINED PLATFORM)
-  if (CMAKE_OSX_ARCHITECTURES)
-    if(CMAKE_OSX_ARCHITECTURES MATCHES ".*arm.*" AND CMAKE_OSX_SYSROOT MATCHES ".*iphoneos.*")
-      set(PLATFORM "OS")
-    elseif(CMAKE_OSX_ARCHITECTURES MATCHES "i386" AND CMAKE_OSX_SYSROOT MATCHES ".*iphonesimulator.*")
-      set(PLATFORM "SIMULATOR")
-    elseif(CMAKE_OSX_ARCHITECTURES MATCHES "x86_64" AND CMAKE_OSX_SYSROOT MATCHES ".*iphonesimulator.*")
-      set(PLATFORM "SIMULATOR64")
-    elseif(CMAKE_OSX_ARCHITECTURES MATCHES "arm64" AND CMAKE_OSX_SYSROOT MATCHES ".*appletvos.*")
-      set(PLATFORM "TVOS")
-    elseif(CMAKE_OSX_ARCHITECTURES MATCHES "x86_64" AND CMAKE_OSX_SYSROOT MATCHES ".*appletvsimulator.*")
-      set(PLATFORM "SIMULATOR_TVOS")
-    elseif(CMAKE_OSX_ARCHITECTURES MATCHES ".*armv7k.*" AND CMAKE_OSX_SYSROOT MATCHES ".*watchos.*")
-      set(PLATFORM "WATCHOS")
-    elseif(CMAKE_OSX_ARCHITECTURES MATCHES "i386" AND CMAKE_OSX_SYSROOT MATCHES ".*watchsimulator.*")
-      set(PLATFORM "SIMULATOR_WATCHOS")
-    endif()
-  endif()
-  if (NOT PLATFORM)
-    set(PLATFORM "OS")
-  endif()
-endif()
-
-set(PLATFORM_INT "${PLATFORM}" CACHE STRING "Type of platform for which the build targets.")
-
-# Handle the case where we are targeting iOS and a version above 10.0 (32-bit support dropped officially)
-if(PLATFORM_INT STREQUAL "OS" AND DEPLOYMENT_TARGET VERSION_GREATER_EQUAL 10.0)
-  set(PLATFORM_INT "OS64")
-  message(STATUS "Targeting minimum SDK version ${DEPLOYMENT_TARGET}. Dropping 32-bit support.")
-elseif(PLATFORM_INT STREQUAL "SIMULATOR" AND DEPLOYMENT_TARGET VERSION_GREATER_EQUAL 10.0)
-  set(PLATFORM_INT "SIMULATOR64")
-  message(STATUS "Targeting minimum SDK version ${DEPLOYMENT_TARGET}. Dropping 32-bit support.")
-endif()
-
-# Determine the platform name and architectures for use in xcodebuild commands
-# from the specified PLATFORM name.
-if(PLATFORM_INT STREQUAL "OS")
-  set(SDK_NAME iphoneos)
-  if(NOT ARCHS)
-    set(ARCHS armv7 armv7s arm64)
-  endif()
-elseif(PLATFORM_INT STREQUAL "OS64")
-  set(SDK_NAME iphoneos)
-  if(NOT ARCHS)
-    if (XCODE_VERSION VERSION_GREATER 10.0)
-      set(ARCHS arm64) # Add arm64e when Apple have fixed the integration issues with it, libarclite_iphoneos.a is currently missung bitcode markers for example
-    else()
-      set(ARCHS arm64)
-    endif()
-  endif()
-elseif(PLATFORM_INT STREQUAL "OS64COMBINED")
-  set(SDK_NAME iphoneos)
-  if(MODERN_CMAKE)
-    if(NOT ARCHS)
-      if (XCODE_VERSION VERSION_GREATER 10.0)
-        set(ARCHS arm64 x86_64) # Add arm64e when Apple have fixed the integration issues with it, libarclite_iphoneos.a is currently missung bitcode markers for example
-      else()
-        set(ARCHS arm64 x86_64)
-      endif()
-    endif()
-  else()
-    message(FATAL_ERROR "Please make sure that you are running CMake 3.14+ to make the OS64COMBINED setting work")
-  endif()
-elseif(PLATFORM_INT STREQUAL "SIMULATOR")
-  set(SDK_NAME iphonesimulator)
-  if(NOT ARCHS)
-    set(ARCHS i386)
-  endif()
-  message(DEPRECATION "SIMULATOR IS DEPRECATED. Consider using SIMULATOR64 instead.")
-elseif(PLATFORM_INT STREQUAL "SIMULATOR64")
-  set(SDK_NAME iphonesimulator)
-  if(NOT ARCHS)
-    set(ARCHS x86_64)
-  endif()
-elseif(PLATFORM_INT STREQUAL "TVOS")
-  set(SDK_NAME appletvos)
-  if(NOT ARCHS)
-    set(ARCHS arm64)
-  endif()
-elseif (PLATFORM_INT STREQUAL "TVOSCOMBINED")
-  set(SDK_NAME appletvos)
-  if(MODERN_CMAKE)
-    if(NOT ARCHS)
-      set(ARCHS arm64 x86_64)
-    endif()
-  else()
-    message(FATAL_ERROR "Please make sure that you are running CMake 3.14+ to make the TVOSCOMBINED setting work")
-  endif()
-elseif(PLATFORM_INT STREQUAL "SIMULATOR_TVOS")
-  set(SDK_NAME appletvsimulator)
-  if(NOT ARCHS)
-    set(ARCHS x86_64)
-  endif()
-elseif(PLATFORM_INT STREQUAL "WATCHOS")
-  set(SDK_NAME watchos)
-  if(NOT ARCHS)
-    if (XCODE_VERSION VERSION_GREATER 10.0)
-      set(ARCHS armv7k arm64_32)
-    else()
-      set(ARCHS armv7k)
-    endif()
-  endif()
-elseif(PLATFORM_INT STREQUAL "WATCHOSCOMBINED")
-  set(SDK_NAME watchos)
-  if(MODERN_CMAKE)
-    if(NOT ARCHS)
-      if (XCODE_VERSION VERSION_GREATER 10.0)
-        set(ARCHS armv7k arm64_32 i386)
-      else()
-        set(ARCHS armv7k i386)
-      endif()
-    endif()
-  else()
-    message(FATAL_ERROR "Please make sure that you are running CMake 3.14+ to make the WATCHOSCOMBINED setting work")
-  endif()
-elseif(PLATFORM_INT STREQUAL "SIMULATOR_WATCHOS")
-  set(SDK_NAME watchsimulator)
-  if(NOT ARCHS)
-    set(ARCHS i386)
-  endif()
-else()
-  message(FATAL_ERROR "Invalid PLATFORM: ${PLATFORM_INT}")
-endif()
-message(STATUS "Configuring ${SDK_NAME} build for platform: ${PLATFORM_INT}, architecture(s): ${ARCHS}")
-
-if(MODERN_CMAKE AND PLATFORM_INT MATCHES ".*COMBINED" AND NOT USED_CMAKE_GENERATOR MATCHES "Xcode")
-  message(FATAL_ERROR "The COMBINED options only work with Xcode generator, -G Xcode")
-endif()
-
-# If user did not specify the SDK root to use, then query xcodebuild for it.
-execute_process(COMMAND xcodebuild -version -sdk ${SDK_NAME} Path
-    OUTPUT_VARIABLE CMAKE_OSX_SYSROOT_INT
-    ERROR_QUIET
-    OUTPUT_STRIP_TRAILING_WHITESPACE)
-if (NOT DEFINED CMAKE_OSX_SYSROOT_INT AND NOT DEFINED CMAKE_OSX_SYSROOT)
-  message(SEND_ERROR "Please make sure that Xcode is installed and that the toolchain"
-  "is pointing to the correct path. Please run:"
-  "sudo xcode-select -s /Applications/Xcode.app/Contents/Developer"
-  "and see if that fixes the problem for you.")
-  message(FATAL_ERROR "Invalid CMAKE_OSX_SYSROOT: ${CMAKE_OSX_SYSROOT} "
-  "does not exist.")
-elseif(DEFINED CMAKE_OSX_SYSROOT)
-  message(STATUS "Using manually set SDK: ${CMAKE_OSX_SYSROOT} for platform: ${PLATFORM_INT}")
-elseif(DEFINED CMAKE_OSX_SYSROOT_INT)
-   message(STATUS "Using SDK: ${CMAKE_OSX_SYSROOT_INT} for platform: ${PLATFORM_INT}")
-   set(CMAKE_OSX_SYSROOT "${CMAKE_OSX_SYSROOT_INT}" CACHE INTERNAL "")
-endif()
-
-# Set Xcode property for SDKROOT as well if Xcode generator is used
-if(USED_CMAKE_GENERATOR MATCHES "Xcode")
-  set(CMAKE_OSX_SYSROOT "${SDK_NAME}" CACHE INTERNAL "")
-  if(NOT DEFINED CMAKE_XCODE_ATTRIBUTE_DEVELOPMENT_TEAM)
-    set(CMAKE_XCODE_ATTRIBUTE_DEVELOPMENT_TEAM 123456789A CACHE INTERNAL "")
-  endif()
-endif()
-
-# Specify minimum version of deployment target.
-if(NOT DEFINED DEPLOYMENT_TARGET)
-  if (PLATFORM_INT STREQUAL "WATCHOS" OR PLATFORM_INT STREQUAL "SIMULATOR_WATCHOS")
-    # Unless specified, SDK version 2.0 is used by default as minimum target version (watchOS).
-    set(DEPLOYMENT_TARGET "2.0"
-            CACHE STRING "Minimum SDK version to build for." )
-  else()
-    # Unless specified, SDK version 9.0 is used by default as minimum target version (iOS, tvOS).
-    set(DEPLOYMENT_TARGET "9.0"
-            CACHE STRING "Minimum SDK version to build for." )
-  endif()
-  message(STATUS "Using the default min-version since DEPLOYMENT_TARGET not provided!")
-endif()
-# Use bitcode or not
-if(NOT DEFINED ENABLE_BITCODE AND NOT ARCHS MATCHES "((^|, )(i386|x86_64))+")
-  # Unless specified, enable bitcode support by default
-  message(STATUS "Enabling bitcode support by default. ENABLE_BITCODE not provided!")
-  set(ENABLE_BITCODE TRUE)
-elseif(NOT DEFINED ENABLE_BITCODE)
-  message(STATUS "Disabling bitcode support by default on simulators. ENABLE_BITCODE not provided for override!")
-  set(ENABLE_BITCODE FALSE)
-endif()
-set(ENABLE_BITCODE_INT ${ENABLE_BITCODE} CACHE BOOL "Whether or not to enable bitcode" FORCE)
-# Use ARC or not
-if(NOT DEFINED ENABLE_ARC)
-  # Unless specified, enable ARC support by default
-  set(ENABLE_ARC TRUE)
-  message(STATUS "Enabling ARC support by default. ENABLE_ARC not provided!")
-endif()
-set(ENABLE_ARC_INT ${ENABLE_ARC} CACHE BOOL "Whether or not to enable ARC" FORCE)
-# Use hidden visibility or not
-if(NOT DEFINED ENABLE_VISIBILITY)
-  # Unless specified, disable symbols visibility by default
-  set(ENABLE_VISIBILITY FALSE)
-  message(STATUS "Hiding symbols visibility by default. ENABLE_VISIBILITY not provided!")
-endif()
-set(ENABLE_VISIBILITY_INT ${ENABLE_VISIBILITY} CACHE BOOL "Whether or not to hide symbols (-fvisibility=hidden)" FORCE)
-# Get the SDK version information.
-execute_process(COMMAND xcodebuild -sdk ${CMAKE_OSX_SYSROOT} -version SDKVersion
-  OUTPUT_VARIABLE SDK_VERSION
-  ERROR_QUIET
-  OUTPUT_STRIP_TRAILING_WHITESPACE)
-
-# Find the Developer root for the specific iOS platform being compiled for
-# from CMAKE_OSX_SYSROOT.  Should be ../../ from SDK specified in
-# CMAKE_OSX_SYSROOT. There does not appear to be a direct way to obtain
-# this information from xcrun or xcodebuild.
-if (NOT DEFINED CMAKE_DEVELOPER_ROOT AND NOT USED_CMAKE_GENERATOR MATCHES "Xcode")
-  get_filename_component(IOS_PLATFORM_SDK_DIR ${CMAKE_OSX_SYSROOT} PATH)
-  get_filename_component(CMAKE_DEVELOPER_ROOT ${IOS_PLATFORM_SDK_DIR} PATH)
-
-  if (NOT DEFINED CMAKE_DEVELOPER_ROOT)
-    message(FATAL_ERROR "Invalid CMAKE_DEVELOPER_ROOT: "
-      "${CMAKE_DEVELOPER_ROOT} does not exist.")
-  endif()
-endif()
-# Find the C & C++ compilers for the specified SDK.
-if(NOT CMAKE_C_COMPILER)
-  execute_process(COMMAND xcrun -sdk ${CMAKE_OSX_SYSROOT} -find clang
-    OUTPUT_VARIABLE CMAKE_C_COMPILER
-    ERROR_QUIET
-    OUTPUT_STRIP_TRAILING_WHITESPACE)
-  message(STATUS "Using C compiler: ${CMAKE_C_COMPILER}")
-endif()
-if(NOT CMAKE_CXX_COMPILER)
-  execute_process(COMMAND xcrun -sdk ${CMAKE_OSX_SYSROOT} -find clang++
-    OUTPUT_VARIABLE CMAKE_CXX_COMPILER
-    ERROR_QUIET
-    OUTPUT_STRIP_TRAILING_WHITESPACE)
-  message(STATUS "Using CXX compiler: ${CMAKE_CXX_COMPILER}")
-endif()
-# Find (Apple's) libtool.
-execute_process(COMMAND xcrun -sdk ${CMAKE_OSX_SYSROOT} -find libtool
-  OUTPUT_VARIABLE BUILD_LIBTOOL
-  ERROR_QUIET
-  OUTPUT_STRIP_TRAILING_WHITESPACE)
-message(STATUS "Using libtool: ${BUILD_LIBTOOL}")
-# Configure libtool to be used instead of ar + ranlib to build static libraries.
-# This is required on Xcode 7+, but should also work on previous versions of
-# Xcode.
-set(CMAKE_C_CREATE_STATIC_LIBRARY
-  "${BUILD_LIBTOOL} -static -o <TARGET> <LINK_FLAGS> <OBJECTS> ")
-set(CMAKE_CXX_CREATE_STATIC_LIBRARY
-  "${BUILD_LIBTOOL} -static -o <TARGET> <LINK_FLAGS> <OBJECTS> ")
-# Get the version of Darwin (OS X) of the host.
-execute_process(COMMAND uname -r
-  OUTPUT_VARIABLE CMAKE_HOST_SYSTEM_VERSION
-  ERROR_QUIET
-  OUTPUT_STRIP_TRAILING_WHITESPACE)
-# CMake 3.14+ support building for iOS, watchOS and tvOS out of the box.
-if(MODERN_CMAKE)
-  if(SDK_NAME MATCHES "iphone")
-    set(CMAKE_SYSTEM_NAME iOS CACHE INTERNAL "" FORCE)
-  elseif(SDK_NAME MATCHES "appletv")
-    set(CMAKE_SYSTEM_NAME tvOS CACHE INTERNAL "" FORCE)
-  elseif(SDK_NAME MATCHES "watch")
-    set(CMAKE_SYSTEM_NAME watchOS CACHE INTERNAL "" FORCE)
-  endif()
-
-  # Provide flags for a combined FAT library build on newer CMake versions
-  if(PLATFORM_INT MATCHES ".*COMBINED")
-    set(CMAKE_XCODE_ATTRIBUTE_ONLY_ACTIVE_ARCH NO CACHE INTERNAL "")
-    set(CMAKE_IOS_INSTALL_COMBINED YES CACHE INTERNAL "")
-    message(STATUS "Will combine built (static) artifacts into FAT lib...")
-  endif()
-else()
-  # Legacy code path prior to CMake 3.14
-  set(CMAKE_SYSTEM_NAME Darwin CACHE INTERNAL "" FORCE)
-endif()
-# Standard settings.
-set(CMAKE_SYSTEM_VERSION ${SDK_VERSION} CACHE INTERNAL "")
-set(UNIX TRUE CACHE BOOL "")
-set(APPLE TRUE CACHE BOOL "")
-set(IOS TRUE CACHE BOOL "")
-set(CMAKE_AR ar CACHE FILEPATH "" FORCE)
-set(CMAKE_RANLIB ranlib CACHE FILEPATH "" FORCE)
-# Set the architectures for which to build.
-set(CMAKE_OSX_ARCHITECTURES ${ARCHS} CACHE STRING "Build architecture for iOS")
-# Change the type of target generated for try_compile() so it'll work when cross-compiling
-set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY)
-# All iOS/Darwin specific settings - some may be redundant.
-set(CMAKE_SHARED_LIBRARY_PREFIX "lib")
-set(CMAKE_SHARED_LIBRARY_SUFFIX ".dylib")
-set(CMAKE_SHARED_MODULE_PREFIX "lib")
-set(CMAKE_SHARED_MODULE_SUFFIX ".so")
-set(CMAKE_C_COMPILER_ABI ELF)
-set(CMAKE_CXX_COMPILER_ABI ELF)
-set(CMAKE_C_HAS_ISYSROOT 1)
-set(CMAKE_CXX_HAS_ISYSROOT 1)
-set(CMAKE_MODULE_EXISTS 1)
-set(CMAKE_DL_LIBS "")
-set(CMAKE_C_OSX_COMPATIBILITY_VERSION_FLAG "-compatibility_version ")
-set(CMAKE_C_OSX_CURRENT_VERSION_FLAG "-current_version ")
-set(CMAKE_CXX_OSX_COMPATIBILITY_VERSION_FLAG "${CMAKE_C_OSX_COMPATIBILITY_VERSION_FLAG}")
-set(CMAKE_CXX_OSX_CURRENT_VERSION_FLAG "${CMAKE_C_OSX_CURRENT_VERSION_FLAG}")
-
-if(ARCHS MATCHES "((^|, )(arm64|arm64e|x86_64))+")
-  set(CMAKE_C_SIZEOF_DATA_PTR 8)
-  set(CMAKE_CXX_SIZEOF_DATA_PTR 8)
-  message(STATUS "Using a data_ptr size of 8")
-else()
-  set(CMAKE_C_SIZEOF_DATA_PTR 4)
-  set(CMAKE_CXX_SIZEOF_DATA_PTR 4)
-  message(STATUS "Using a data_ptr size of 4")
-endif()
-
-message(STATUS "Building for minimum ${SDK_NAME} version: ${DEPLOYMENT_TARGET}"
-               " (SDK version: ${SDK_VERSION})")
-# Note that only Xcode 7+ supports the newer more specific:
-# -m${SDK_NAME}-version-min flags, older versions of Xcode use:
-# -m(ios/ios-simulator)-version-min instead.
-if(PLATFORM_INT STREQUAL "OS" OR PLATFORM_INT STREQUAL "OS64")
-  if(XCODE_VERSION VERSION_LESS 7.0)
-    set(SDK_NAME_VERSION_FLAGS
-      "-mios-version-min=${DEPLOYMENT_TARGET}")
-  else()
-    # Xcode 7.0+ uses flags we can build directly from SDK_NAME.
-    set(SDK_NAME_VERSION_FLAGS
-      "-m${SDK_NAME}-version-min=${DEPLOYMENT_TARGET}")
-  endif()
-elseif(PLATFORM_INT STREQUAL "TVOS")
-  set(SDK_NAME_VERSION_FLAGS
-    "-mtvos-version-min=${DEPLOYMENT_TARGET}")
-elseif(PLATFORM_INT STREQUAL "SIMULATOR_TVOS")
-  set(SDK_NAME_VERSION_FLAGS
-    "-mtvos-simulator-version-min=${DEPLOYMENT_TARGET}")
-elseif(PLATFORM_INT STREQUAL "WATCHOS")
-  set(SDK_NAME_VERSION_FLAGS
-    "-mwatchos-version-min=${DEPLOYMENT_TARGET}")
-elseif(PLATFORM_INT STREQUAL "SIMULATOR_WATCHOS")
-  set(SDK_NAME_VERSION_FLAGS
-    "-mwatchos-simulator-version-min=${DEPLOYMENT_TARGET}")
-else()
-  # SIMULATOR or SIMULATOR64 both use -mios-simulator-version-min.
-  set(SDK_NAME_VERSION_FLAGS
-    "-mios-simulator-version-min=${DEPLOYMENT_TARGET}")
-endif()
-message(STATUS "Version flags set to: ${SDK_NAME_VERSION_FLAGS}")
-set(CMAKE_OSX_DEPLOYMENT_TARGET ${DEPLOYMENT_TARGET} CACHE STRING
-    "Set CMake deployment target" FORCE)
-
-if(ENABLE_BITCODE_INT)
-  set(BITCODE "-fembed-bitcode")
-  set(HEADER_PAD "")
-  set(CMAKE_XCODE_ATTRIBUTE_BITCODE_GENERATION_MODE bitcode CACHE INTERNAL "")
-  message(STATUS "Enabling bitcode support.")
-else()
-  set(BITCODE "")
-  set(HEADER_PAD "-headerpad_max_install_names")
-  set(CMAKE_XCODE_ATTRIBUTE_ENABLE_BITCODE NO CACHE INTERNAL "")
-  message(STATUS "Disabling bitcode support.")
-endif()
-
-if(ENABLE_ARC_INT)
-  set(FOBJC_ARC "-fobjc-arc")
-  set(CMAKE_XCODE_ATTRIBUTE_CLANG_ENABLE_OBJC_ARC YES CACHE INTERNAL "")
-  message(STATUS "Enabling ARC support.")
-else()
-  set(FOBJC_ARC "-fno-objc-arc")
-  set(CMAKE_XCODE_ATTRIBUTE_CLANG_ENABLE_OBJC_ARC NO CACHE INTERNAL "")
-  message(STATUS "Disabling ARC support.")
-endif()
-
-if(NOT ENABLE_VISIBILITY_INT)
-  set(VISIBILITY "-fvisibility=hidden")
-  set(CMAKE_XCODE_ATTRIBUTE_GCC_SYMBOLS_PRIVATE_EXTERN YES CACHE INTERNAL "")
-  message(STATUS "Hiding symbols (-fvisibility=hidden).")
-else()
-  set(VISIBILITY "")
-  set(CMAKE_XCODE_ATTRIBUTE_GCC_SYMBOLS_PRIVATE_EXTERN NO CACHE INTERNAL "")
-endif()
-
-#Check if Xcode generator is used, since that will handle these flags automagically
-if(USED_CMAKE_GENERATOR MATCHES "Xcode")
-  message(STATUS "Not setting any manual command-line buildflags, since Xcode is selected as generator.")
-else()
-  set(CMAKE_C_FLAGS
-  "${SDK_NAME_VERSION_FLAGS} ${BITCODE} -fobjc-abi-version=2 ${FOBJC_ARC} ${CMAKE_C_FLAGS}")
-  # Hidden visibilty is required for C++ on iOS.
-  set(CMAKE_CXX_FLAGS
-  "${SDK_NAME_VERSION_FLAGS} ${BITCODE} ${VISIBILITY} -fvisibility-inlines-hidden -fobjc-abi-version=2 ${FOBJC_ARC} ${CMAKE_CXX_FLAGS}")
-  set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS} -O0 -g ${CMAKE_CXX_FLAGS_DEBUG}")
-  set(CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS} -DNDEBUG -Os -ffast-math ${CMAKE_CXX_FLAGS_MINSIZEREL}")
-  set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS} -DNDEBUG -O2 -g -ffast-math ${CMAKE_CXX_FLAGS_RELWITHDEBINFO}")
-  set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS} -DNDEBUG -O3 -ffast-math ${CMAKE_CXX_FLAGS_RELEASE}")
-  set(CMAKE_C_LINK_FLAGS "${SDK_NAME_VERSION_FLAGS} -Wl,-search_paths_first ${CMAKE_C_LINK_FLAGS}")
-  set(CMAKE_CXX_LINK_FLAGS "${SDK_NAME_VERSION_FLAGS}  -Wl,-search_paths_first ${CMAKE_CXX_LINK_FLAGS}")
-
-  # In order to ensure that the updated compiler flags are used in try_compile()
-  # tests, we have to forcibly set them in the CMake cache, not merely set them
-  # in the local scope.
-  list(APPEND VARS_TO_FORCE_IN_CACHE
-    CMAKE_C_FLAGS
-    CMAKE_CXX_FLAGS
-    CMAKE_CXX_FLAGS_DEBUG
-    CMAKE_CXX_FLAGS_RELWITHDEBINFO
-    CMAKE_CXX_FLAGS_MINSIZEREL
-    CMAKE_CXX_FLAGS_RELEASE
-    CMAKE_C_LINK_FLAGS
-    CMAKE_CXX_LINK_FLAGS)
-  foreach(VAR_TO_FORCE ${VARS_TO_FORCE_IN_CACHE})
-    set(${VAR_TO_FORCE} "${${VAR_TO_FORCE}}" CACHE STRING "")
-  endforeach()
-endif()
-
-set(CMAKE_PLATFORM_HAS_INSTALLNAME 1)
-set(CMAKE_SHARED_LINKER_FLAGS "-rpath @executable_path/Frameworks -rpath @loader_path/Frameworks")
-set(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-dynamiclib ${HEADER_PAD}")
-set(CMAKE_SHARED_MODULE_CREATE_C_FLAGS "-bundle ${HEADER_PAD}")
-set(CMAKE_SHARED_MODULE_LOADER_C_FLAG "-Wl,-bundle_loader,")
-set(CMAKE_SHARED_MODULE_LOADER_CXX_FLAG "-Wl,-bundle_loader,")
-set(CMAKE_FIND_LIBRARY_SUFFIXES ".dylib" ".so" ".a")
-
-# Hack: if a new cmake (which uses CMAKE_INSTALL_NAME_TOOL) runs on an old
-# build tree (where install_name_tool was hardcoded) and where
-# CMAKE_INSTALL_NAME_TOOL isn't in the cache and still cmake didn't fail in
-# CMakeFindBinUtils.cmake (because it isn't rerun) hardcode
-# CMAKE_INSTALL_NAME_TOOL here to install_name_tool, so it behaves as it did
-# before, Alex.
-if(NOT DEFINED CMAKE_INSTALL_NAME_TOOL)
-  find_program(CMAKE_INSTALL_NAME_TOOL install_name_tool)
-endif (NOT DEFINED CMAKE_INSTALL_NAME_TOOL)
-
-# Set the find root to the iOS developer roots and to user defined paths.
-set(CMAKE_FIND_ROOT_PATH ${CMAKE_DEVELOPER_ROOT} ${CMAKE_OSX_SYSROOT}
-  ${CMAKE_PREFIX_PATH} CACHE STRING "SKD find search path root" FORCE)
-# Default to searching for frameworks first.
-set(CMAKE_FIND_FRAMEWORK FIRST)
-# Set up the default search directories for frameworks.
-set(CMAKE_SYSTEM_FRAMEWORK_PATH
-  ${CMAKE_OSX_SYSROOT}/System/Library/Frameworks
-  ${CMAKE_OSX_SYSROOT}/System/Library/PrivateFrameworks
-  ${CMAKE_OSX_SYSROOT}/Developer/Library/Frameworks)
-# Only search the specified iOS SDK, not the remainder of the host filesystem.
-if( NOT CMAKE_FIND_ROOT_PATH_MODE_PROGRAM )
-  set( CMAKE_FIND_ROOT_PATH_MODE_PROGRAM ONLY )
-endif()
-if( NOT CMAKE_FIND_ROOT_PATH_MODE_LIBRARY )
-  set( CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY )
-endif()
-if( NOT CMAKE_FIND_ROOT_PATH_MODE_INCLUDE )
-  set( CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY )
-endif()
-
-#
-# Some helper-macros below to simplify and beautify the CMakeFile
-#
-
-# This little macro lets you set any XCode specific property.
-macro(set_xcode_property TARGET XCODE_PROPERTY XCODE_VALUE XCODE_RELVERSION)
-  set(XCODE_RELVERSION_I "${XCODE_RELVERSION}")
-  if(XCODE_RELVERSION_I STREQUAL "All")
-    set_property(TARGET ${TARGET} PROPERTY
-    XCODE_ATTRIBUTE_${XCODE_PROPERTY} "${XCODE_VALUE}")
-  else()
-    set_property(TARGET ${TARGET} PROPERTY
-    XCODE_ATTRIBUTE_${XCODE_PROPERTY}[variant=${XCODE_RELVERSION_I}] "${XCODE_VALUE}")
-  endif()
-endmacro(set_xcode_property)
-# This macro lets you find executable programs on the host system.
-macro(find_host_package)
-  set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
-  set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY NEVER)
-  set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE NEVER)
-  set(IOS FALSE)
-  find_package(${ARGN})
-  set(IOS TRUE)
-  set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM ONLY)
-  set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
-  set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
-endmacro(find_host_package)
diff --git a/loader/dobby/docs/.nojekyll b/loader/dobby/docs/.nojekyll
deleted file mode 100644
index e69de29b..00000000
diff --git a/loader/dobby/docs/_cover_page.md b/loader/dobby/docs/_cover_page.md
deleted file mode 100644
index d4a99e57..00000000
--- a/loader/dobby/docs/_cover_page.md
+++ /dev/null
@@ -1,6 +0,0 @@
-# Dobby <small>beta</small>
-
-> An exploit hook framework
-
-[GitHub](https://github.com/jmpews/dobby)
-[Get Started](#intro)
diff --git a/loader/dobby/docs/_nav_bar.md b/loader/dobby/docs/_nav_bar.md
deleted file mode 100644
index 579b5b33..00000000
--- a/loader/dobby/docs/_nav_bar.md
+++ /dev/null
@@ -1,2 +0,0 @@
-* [Release Note](https://github.com/jmpews/Dobby/commits/master)
-* [Download](https://github.com/jmpews/Dobby/releases/tag/latest)
\ No newline at end of file
diff --git a/loader/dobby/docs/_side_bar.md b/loader/dobby/docs/_side_bar.md
deleted file mode 100644
index 541edaa8..00000000
--- a/loader/dobby/docs/_side_bar.md
+++ /dev/null
@@ -1,10 +0,0 @@
-- [Home](/)
-- [Installation](build-documentation.md)
-- [Getting Started](get-started.md)
-- [Getting Started Within iOS](get-started-ios.md)
-- [Getting Started Within Android](get-started-android.md)
-- Setup
-  - [Installation](build-documentation.md)
-  - [Getting Started](get-started.md)
-  - [Getting Started Within iOS](get-started-ios.md)
-  - [Getting Started Within Android](get-started-android.md)
diff --git a/loader/dobby/docs/build-documentation.md b/loader/dobby/docs/build-documentation.md
deleted file mode 100644
index 270fafac..00000000
--- a/loader/dobby/docs/build-documentation.md
+++ /dev/null
@@ -1,116 +0,0 @@
-# Build 
-
-## Cmake build options
-
-```
-option(DOBBY_GENERATE_SHARED "Build shared library" ON)
-
-option(DOBBY_DEBUG "Enable debug logging" ON)
-
-option(NearBranch "Enable Near Branch Trampoline" ON)
-
-option(DynamicBinaryInstrument "Enable Dynamic Binary Instrument" ON)
-
-option(FullFloatingPointRegisterPack "Save and pack all floating-point registers" OFF)
-
-option(Plugin.SymbolResolver "Resolve symbol by [DobbySymbolResolver] " ON)
-
-option(Plugin.GlobalOffsetTableHook "Global Offset Table Hook by [DobbyGlobalOffsetTableReplace] " ON)
-
-option(Plugin.LinkerLoadCallback "Register image load callback " OFF)
-```
-
-## Build script
-
-refer: [build-workspace/auto-build.sh](build-workspace/auto-build.sh)
-
-## Build for host
-
-```
-cd Dobby && mkdir build_for_host && cd build_for_host
-
-cmake ..
-
-make -j4
-```
-
-## Build for iOS / macOS
-
-#### Manual build for macOS X64 host
-
-```
-cd Dobby && mkdir build_for_macos_x64 && cd build_for_macos_x64
-
-cmake .. \
--DCMAKE_BUILD_TYPE=Release \
-
-make -j4
-```
-
-#### Manual build for iOS [ARM/ARM64]
-
-```
-cd Dobby && mkdir build_for_ios_arm64 && cd build_for_ios_arm64
-
-cmake .. -DCMAKE_SYSTEM_NAME=iOS -DCMAKE_OSX_ARCHITECTURES=arm64 -DCMAKE_SYSTEM_PROCESSOR=arm64 -DCMAKE_OSX_DEPLOYMENT_TARGET=9.3
-
-make -j4
-```
-
-if you want generate Xcode Project, just replace with `cmake -G Xcode`.
-
-## Build for Android
-
-#### Manual build for Android ARM64
-
-```
-export ANDROID_NDK=/Users/jmpews/Library/Android/sdk/ndk-bundle
-
-cd Dobby && mkdir build_for_android_arm64 && cd build_for_android_arm64
-
-cmake .. \
--DCMAKE_BUILD_TYPE=Release \
--DCMAKE_SYSTEM_NAME=Android -DCMAKE_ANDROID_ARCH_ABI="arm64-v8a" -DCMAKE_ANDROID_NDK=$ANDROID_NDK -DCMAKE_SYSTEM_VERSION=21 -DCMAKE_ANDROID_NDK_TOOLCHAIN_VERSION=clang
-
-make -j4
-```
-
-#### Manual build for Android ARM
-
-```
-export ANDROID_NDK=/Users/jmpews/Library/Android/sdk/ndk-bundle
-
-cd Dobby && mkdir build_for_android_arm && cd build_for_android_arm
-
--DCMAKE_BUILD_TYPE=Release \
--DCMAKE_SYSTEM_NAME=Android -DCMAKE_ANDROID_ARCH_ABI="armeabi-v7a" -DCMAKE_ANDROID_NDK=$ANDROID_NDK -DCMAKE_SYSTEM_VERSION=16 -DCMAKE_ANDROID_NDK_TOOLCHAIN_VERSION=clang 
-
-make -j4
-```
-
-#### Android Studio CMake
-
-```
-if(NOT TARGET dobby)
-set(DOBBY_DIR /Users/jmpews/Workspace/Project.wrk/Dobby)
-macro(SET_OPTION option value)
-  set(${option} ${value} CACHE INTERNAL "" FORCE)
-endmacro()
-SET_OPTION(DOBBY_DEBUG OFF)
-SET_OPTION(DOBBY_GENERATE_SHARED OFF)
-add_subdirectory(${DOBBY_DIR} dobby)
-get_property(DOBBY_INCLUDE_DIRECTORIES
-  TARGET dobby
-  PROPERTY INCLUDE_DIRECTORIES)
-include_directories(
-  .
-  ${DOBBY_INCLUDE_DIRECTORIES}
-  $<TARGET_PROPERTY:dobby,INCLUDE_DIRECTORIES>
-)
-endif()
-
-add_library(native-lib SHARED
-  ${DOBBY_DIR}/example/android_common_api.cc
-
-  native-lib.cpp)
-```
\ No newline at end of file
diff --git a/loader/dobby/docs/get-started-android.md b/loader/dobby/docs/get-started-android.md
deleted file mode 100644
index 5615028e..00000000
--- a/loader/dobby/docs/get-started-android.md
+++ /dev/null
@@ -1,56 +0,0 @@
-# Getting Started
-
-## create native project and update CMakeLists.txt
-
-```
-if(NOT TARGET dobby)
-set(DOBBY_DIR /Users/jmpews/Workspace/Project.wrk/Dobby)
-macro(SET_OPTION option value)
-  set(${option} ${value} CACHE INTERNAL "" FORCE)
-endmacro()
-SET_OPTION(DOBBY_DEBUG OFF)
-SET_OPTION(DOBBY_GENERATE_SHARED OFF)
-add_subdirectory(${DOBBY_DIR} dobby)
-get_property(DOBBY_INCLUDE_DIRECTORIES
-  TARGET dobby
-  PROPERTY INCLUDE_DIRECTORIES)
-include_directories(
-  .
-  ${DOBBY_INCLUDE_DIRECTORIES}
-  $<TARGET_PROPERTY:dobby,INCLUDE_DIRECTORIES>
-)
-endif()
-
-add_library(native-lib SHARED
-  ${DOBBY_DIR}/example/android_common_api.cc
-
-  native-lib.cpp)
-```
-
-## replace hook function
-
-ref source `builtin-plugin/ApplicationEventMonitor/dynamic_loader_monitor.cc`
-
-ref source `builtin-plugin/ApplicationEventMonitor/posix_file_descriptor_operation_monitor.cc`
-
-## instrument function
-
-ref source `builtin-plugin/ApplicationEventMonitor/memory_operation_instrument.cc`
-
-## Android Linker Restriction
-
-ref source `builtin-plugin/AndroidRestriction/android_restriction_demo.cc`
-
-```c
-# impl at SymbolResolver/elf/dobby_symbol_resolver.cc
-void *__loader_dlopen = DobbySymbolResolver(NULL, "__loader_dlopen");
-DobbyHook((void *)__loader_dlopen, (void *)fake_loader_dlopen, (void **)&orig_loader_dlopen);
-```
-
-```
-# impl at AndroidRestriction/android_restriction.cc
-linker_disable_namespace_restriction();
-void *handle = NULL;
-handle       = dlopen(lib, RTLD_LAZY);
-vm           = dlsym(handle, "_ZN7android14AndroidRuntime7mJavaVME");
-```
\ No newline at end of file
diff --git a/loader/dobby/docs/get-started-ios.md b/loader/dobby/docs/get-started-ios.md
deleted file mode 100644
index f234b950..00000000
--- a/loader/dobby/docs/get-started-ios.md
+++ /dev/null
@@ -1,37 +0,0 @@
-# Getting Started
-
-## add DobbyX.framework to your project
-
-```
-cmake .. -G Xcode -DCMAKE_SYSTEM_NAME=iOS -DCMAKE_OSX_ARCHITECTURES=arm64 -DCMAKE_SYSTEM_PROCESSOR=arm64 -DCMAKE_OSX_DEPLOYMENT_TARGET=9.3
-
-```
-
-**drag the `DobbyX.xcodeproj` to your project**
-
-
-## replace hook function
-
-ref source `builtin-plugin/ApplicationEventMonitor/dynamic_loader_monitor.cc`
-
-ref source `builtin-plugin/ApplicationEventMonitor/posix_file_descriptor_operation_monitor.cc`
-
-## instrument function
-
-ref source `builtin-plugin/ApplicationEventMonitor/MGCopyAnswerMonitor.cc`
-
-## replace pac function
-
-```
-void *posix_spawn_ptr = __builtin_ptrauth_strip((void *)posix_spawn, ptrauth_key_asia);
-void *fake_posix_spawn_ptr = __builtin_ptrauth_strip((void *)fake_posix_spawn, ptrauth_key_asia);
-
-DobbyHook((void *)posix_spawn_ptr, (void *)fake_posix_spawn_ptr, (void **)&orig_posix_spawn);
-
-*(void **)&orig_posix_spawn = (void *)ptrauth_sign_unauthenticated((void *)orig_posix_spawn, ptrauth_key_asia, 0);
-```
-
-
-## objective-c toolkit
-
-invoke `DobbyOCReturnConstant("XXClass", "isVip", true);` will hook the objective-c instance/class method, and return the constant 1 automatically.
diff --git a/loader/dobby/docs/get-started.md b/loader/dobby/docs/get-started.md
deleted file mode 100644
index 2cc63fde..00000000
--- a/loader/dobby/docs/get-started.md
+++ /dev/null
@@ -1,73 +0,0 @@
-# Getting Started
-
-## replace hook function
-
-```
-extern "C" {
-  extern int DobbyHook(void *function_address, void *replace_call, void **origin_call);
-}
-
-size_t (*origin_fread)(void * ptr, size_t size, size_t nitems, FILE * stream);
-
-size_t (fake_fread)(void * ptr, size_t size, size_t nitems, FILE * stream) {
-    // Do What you Want.
-    return origin_fread(ptr, size, nitems, stream);
-}
-
-DobbyHook((void *)fread, (void *)fake_fread, (void **)&origin_fread);
-```
-
-## instrument function
-
-```
-
-uintptr_t getCallFirstArg(RegisterContext *ctx) {
-  uintptr_t result;
-#if defined(_M_X64) || defined(__x86_64__)
-#if defined(_WIN32)
-  result = ctx->general.regs.rcx;
-#else
-  result = ctx->general.regs.rdi;
-#endif
-#elif defined(__arm64__) || defined(__aarch64__)
-  result = ctx->general.regs.x0;
-#elif defined(__arm__)
-  result = ctx->general.regs.r0;
-#else
-#error "Not Support Architecture."
-#endif
-  return result;
-}
-
-void format_integer_manually(char *buf, uint64_t integer) {
-  int tmp = 0;
-  for (tmp = integer; tmp > 0; tmp = (tmp >> 4)) {
-    buf += (tmp % 16);
-    buf--;
-  }
-}
-
-// [ATTENTION]:
-// printf will call 'malloc' internally, and will crash in a loop.
-// so, use 'puts' is a better choice.
-void malloc_handler(RegisterContext *ctx, const HookEntryInfo *info) {
-  size_t size_ = 0;
-  size_        = getCallFirstArg(ctx);
-  char *buffer = "[-] function malloc first arg: 0x00000000.\n";
-  format_integer_manually(strchr(buffer, '.') - 1, size_);
-  puts(buffer);
-}
-
-DobbyInstrument((void *)malloc, malloc_handler)
-```
-
-## replace pac function
-
-```
-void *posix_spawn_ptr = __builtin_ptrauth_strip((void *)posix_spawn, ptrauth_key_asia);
-void *fake_posix_spawn_ptr = __builtin_ptrauth_strip((void *)fake_posix_spawn, ptrauth_key_asia);
-
-DobbyHook((void *)posix_spawn_ptr, (void *)fake_posix_spawn_ptr, (void **)&orig_posix_spawn);
-
-*(void **)&orig_posix_spawn = (void *)ptrauth_sign_unauthenticated((void *)orig_posix_spawn, ptrauth_key_asia, 0);
-```
\ No newline at end of file
diff --git a/loader/dobby/docs/images/vue-logo.png b/loader/dobby/docs/images/vue-logo.png
deleted file mode 100644
index 8bbf9841..00000000
Binary files a/loader/dobby/docs/images/vue-logo.png and /dev/null differ
diff --git a/loader/dobby/docs/index.html b/loader/dobby/docs/index.html
deleted file mode 100644
index d230e179..00000000
--- a/loader/dobby/docs/index.html
+++ /dev/null
@@ -1,61 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-
-<head>
-  <meta charset="UTF-8" />
-  <title>
-    Dobby - a lightweight, multi-platform, multi-architecture hook framework.
-  </title>
-  <meta name="description"
-    content="Configurable JavaScript plugin to extract image primary colors and apply cool effects to it." />
-  <meta name="viewport"
-    content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0" />
-  <meta name="google-site-verification" content="SL_TVYoABZxQiU1ZIhWlISt-WcaerRrdzX6UfS-FaW4" />
-  <link rel="stylesheet" href="//unpkg.com/docsify/lib/themes/vue.css" />
-  <link rel="stylesheet" href="styles/style.css" />
-  <link rel="stylesheet" href="styles/palettify.min.css" />
-  <link rel="stylesheet" href="styles/grid.min.css" />
-  <link rel="apple-touch-icon" sizes="180x180" href="favicons/apple-touch-icon.png" />
-  <link rel="icon" type="image/png" sizes="32x32" href="favicons/favicon-32x32.png" />
-  <link rel="icon" type="image/png" sizes="16x16" href="favicons/favicon-16x16.png" />
-  <link rel="manifest" href="favicons/manifest.json" />
-  <link rel="mask-icon" href="favicons/safari-pinned-tab.svg" color="#5bbad5" />
-  <link rel="shortcut icon" href="favicons/favicon.ico" />
-  <meta name="msapplication-config" content="favicons/browserconfig.xml" />
-  <meta name="theme-color" content="#ffffff" />
-  <meta name="twitter:card" content="summary" />
-  <meta name="twitter:site" content="@d_m_hristov" />
-  <meta name="twitter:title" content="Palettify - apply cool effects to to images using their color palette" />
-  <meta name="twitter:description"
-    content="Configurable JavaScript plugin to extract image primary colors and apply cool effects to it." />
-  <meta name="twitter:image" content="https://dobromir-hristov.github.io/palettify/images/logo.png" />
-  <meta property="og:url" content="https://dobromir-hristov.github.io/palettify/" />
-  <meta property="og:title" content="Palettify - apply cool effects to to images using their color palette" />
-  <meta property="og:description"
-    content="Configurable JavaScript plugin to extract image primary colors and apply cool effects to it." />
-  <meta property="og:image" content="https://dobromir-hristov.github.io/palettify/images/logo.png" />
-</head>
-
-<body>
-  <div id="app"></div>
-</body>
-<script>
-  window.$docsify = {
-    ga: "UA-29425482-8",
-    name: "Dobby",
-    subMaxLevel: 2,
-    loadSidebar: "_side_bar.md",
-    loadNavbar: "_nav_bar.md",
-    coverpage: "_cover_page.md",
-    homepage: "intro-board.md",
-    executeScript: true,
-    auto2top: true
-  };
-</script>
-<script src="//unpkg.com/docsify/lib/docsify.min.js"></script>
-<script src="//unpkg.com/docsify/lib/plugins/ga.min.js"></script>
-<script src="scripts/palettify.min.js"></script>
-<script src="scripts/palettify.styles.min.js"></script>
-<script src="//unpkg.com/docsify/lib/plugins/external-script.min.js"></script>
-
-</html>
\ No newline at end of file
diff --git a/loader/dobby/docs/intro-board.md b/loader/dobby/docs/intro-board.md
deleted file mode 100644
index e99ddb12..00000000
--- a/loader/dobby/docs/intro-board.md
+++ /dev/null
@@ -1,14 +0,0 @@
-# Intro
-
-a lightweight, multi-platform, multi-architecture exploit hook framework.
-
-**tips: any question [go to Telegram](https://t.me/dobby_group)**
-
-- Minimal and modular library
-- Multi-platform support(Windows/macOS/iOS/Android/Linux)
-- Multiple architecture support(X86-64, ARM, ARM64)
-- Clean code without STL(port to kernel easily)
-- Plugin support(DobbyDrill ?)
-- iOS kernel exploit support(Gollum ?)
-
-**[CHANGELOG]()**
diff --git a/loader/dobby/docs/scripts/imagesloaded.pkgd.min.js b/loader/dobby/docs/scripts/imagesloaded.pkgd.min.js
deleted file mode 100644
index 6db7e38a..00000000
--- a/loader/dobby/docs/scripts/imagesloaded.pkgd.min.js
+++ /dev/null
@@ -1,7 +0,0 @@
-/*!
- * imagesLoaded PACKAGED v4.1.2
- * JavaScript is all like "You images are done yet or what?"
- * MIT License
- */
-
-!function(t,e){"function"==typeof define&&define.amd?define("ev-emitter/ev-emitter",e):"object"==typeof module&&module.exports?module.exports=e():t.EvEmitter=e()}("undefined"!=typeof window?window:this,function(){function t(){}var e=t.prototype;return e.on=function(t,e){if(t&&e){var i=this._events=this._events||{},n=i[t]=i[t]||[];return-1==n.indexOf(e)&&n.push(e),this}},e.once=function(t,e){if(t&&e){this.on(t,e);var i=this._onceEvents=this._onceEvents||{},n=i[t]=i[t]||{};return n[e]=!0,this}},e.off=function(t,e){var i=this._events&&this._events[t];if(i&&i.length){var n=i.indexOf(e);return-1!=n&&i.splice(n,1),this}},e.emitEvent=function(t,e){var i=this._events&&this._events[t];if(i&&i.length){var n=0,o=i[n];e=e||[];for(var r=this._onceEvents&&this._onceEvents[t];o;){var s=r&&r[o];s&&(this.off(t,o),delete r[o]),o.apply(this,e),n+=s?0:1,o=i[n]}return this}},t}),function(t,e){"use strict";"function"==typeof define&&define.amd?define(["ev-emitter/ev-emitter"],function(i){return e(t,i)}):"object"==typeof module&&module.exports?module.exports=e(t,require("ev-emitter")):t.imagesLoaded=e(t,t.EvEmitter)}("undefined"!=typeof window?window:this,function(t,e){function i(t,e){for(var i in e)t[i]=e[i];return t}function n(t){var e=[];if(Array.isArray(t))e=t;else if("number"==typeof t.length)for(var i=0;i<t.length;i++)e.push(t[i]);else e.push(t);return e}function o(t,e,r){return this instanceof o?("string"==typeof t&&(t=document.querySelectorAll(t)),this.elements=n(t),this.options=i({},this.options),"function"==typeof e?r=e:i(this.options,e),r&&this.on("always",r),this.getImages(),h&&(this.jqDeferred=new h.Deferred),void setTimeout(function(){this.check()}.bind(this))):new o(t,e,r)}function r(t){this.img=t}function s(t,e){this.url=t,this.element=e,this.img=new Image}var h=t.jQuery,a=t.console;o.prototype=Object.create(e.prototype),o.prototype.options={},o.prototype.getImages=function(){this.images=[],this.elements.forEach(this.addElementImages,this)},o.prototype.addElementImages=function(t){"IMG"==t.nodeName&&this.addImage(t),this.options.background===!0&&this.addElementBackgroundImages(t);var e=t.nodeType;if(e&&d[e]){for(var i=t.querySelectorAll("img"),n=0;n<i.length;n++){var o=i[n];this.addImage(o)}if("string"==typeof this.options.background){var r=t.querySelectorAll(this.options.background);for(n=0;n<r.length;n++){var s=r[n];this.addElementBackgroundImages(s)}}}};var d={1:!0,9:!0,11:!0};return o.prototype.addElementBackgroundImages=function(t){var e=getComputedStyle(t);if(e)for(var i=/url\((['"])?(.*?)\1\)/gi,n=i.exec(e.backgroundImage);null!==n;){var o=n&&n[2];o&&this.addBackground(o,t),n=i.exec(e.backgroundImage)}},o.prototype.addImage=function(t){var e=new r(t);this.images.push(e)},o.prototype.addBackground=function(t,e){var i=new s(t,e);this.images.push(i)},o.prototype.check=function(){function t(t,i,n){setTimeout(function(){e.progress(t,i,n)})}var e=this;return this.progressedCount=0,this.hasAnyBroken=!1,this.images.length?void this.images.forEach(function(e){e.once("progress",t),e.check()}):void this.complete()},o.prototype.progress=function(t,e,i){this.progressedCount++,this.hasAnyBroken=this.hasAnyBroken||!t.isLoaded,this.emitEvent("progress",[this,t,e]),this.jqDeferred&&this.jqDeferred.notify&&this.jqDeferred.notify(this,t),this.progressedCount==this.images.length&&this.complete(),this.options.debug&&a&&a.log("progress: "+i,t,e)},o.prototype.complete=function(){var t=this.hasAnyBroken?"fail":"done";if(this.isComplete=!0,this.emitEvent(t,[this]),this.emitEvent("always",[this]),this.jqDeferred){var e=this.hasAnyBroken?"reject":"resolve";this.jqDeferred[e](this)}},r.prototype=Object.create(e.prototype),r.prototype.check=function(){var t=this.getIsImageComplete();return t?void this.confirm(0!==this.img.naturalWidth,"naturalWidth"):(this.proxyImage=new Image,this.proxyImage.addEventListener("load",this),this.proxyImage.addEventListener("error",this),this.img.addEventListener("load",this),this.img.addEventListener("error",this),void(this.proxyImage.src=this.img.src))},r.prototype.getIsImageComplete=function(){return this.img.complete&&void 0!==this.img.naturalWidth},r.prototype.confirm=function(t,e){this.isLoaded=t,this.emitEvent("progress",[this,this.img,e])},r.prototype.handleEvent=function(t){var e="on"+t.type;this[e]&&this[e](t)},r.prototype.onload=function(){this.confirm(!0,"onload"),this.unbindEvents()},r.prototype.onerror=function(){this.confirm(!1,"onerror"),this.unbindEvents()},r.prototype.unbindEvents=function(){this.proxyImage.removeEventListener("load",this),this.proxyImage.removeEventListener("error",this),this.img.removeEventListener("load",this),this.img.removeEventListener("error",this)},s.prototype=Object.create(r.prototype),s.prototype.check=function(){this.img.addEventListener("load",this),this.img.addEventListener("error",this),this.img.src=this.url;var t=this.getIsImageComplete();t&&(this.confirm(0!==this.img.naturalWidth,"naturalWidth"),this.unbindEvents())},s.prototype.unbindEvents=function(){this.img.removeEventListener("load",this),this.img.removeEventListener("error",this)},s.prototype.confirm=function(t,e){this.isLoaded=t,this.emitEvent("progress",[this,this.element,e])},o.makeJQueryPlugin=function(e){e=e||t.jQuery,e&&(h=e,h.fn.imagesLoaded=function(t,e){var i=new o(this,t,e);return i.jqDeferred.promise(h(this))})},o.makeJQueryPlugin(),o});
\ No newline at end of file
diff --git a/loader/dobby/docs/scripts/palettify.min.js b/loader/dobby/docs/scripts/palettify.min.js
deleted file mode 100644
index b32eb78b..00000000
--- a/loader/dobby/docs/scripts/palettify.min.js
+++ /dev/null
@@ -1,6 +0,0 @@
-/*!
- * palettify v1.0.3 
- * (c) 2018 Dobromir Hristov
- * Released under the MIT License.
- */
-!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):t.palettify=e()}(this,function(){"use strict";function t(t){switch(typeof t){case"string":case"number":case"boolean":return t;case"object":try{return null===t?"":JSON.stringify(t)}catch(t){return"{...}"}default:return""}}function e(t,n,r){if(void 0===r&&(r=0),"object"!=typeof t||null===t||void 0===t)return"";var o=n[r],a=t[o];return r===n.length-1?a:e(a,n,++r)}function n(t,n){return e(n,t.split("."))}function r(e,r,o){return void 0===r&&(r={}),void 0===o&&(o=n),"string"!=typeof e?e:e.replace(g,function(e,a){try{return t(o(a,r))}catch(e){return t(n(a,r))}})}function o(t){return!!t&&"object"==typeof t}function a(t){var e=Object.prototype.toString.call(t);return"[object RegExp]"===e||"[object Date]"===e||i(t)}function i(t){return t.$$typeof===m}function s(t){return Array.isArray(t)?[]:{}}function c(t,e){return e&&!0===e.clone&&d(t)?f(s(t),t,e):t}function u(t,e,n){var r=t.slice();return e.forEach(function(e,o){void 0===r[o]?r[o]=c(e,n):d(e)?r[o]=f(t[o],e,n):-1===t.indexOf(e)&&r.push(c(e,n))}),r}function l(t,e,n){var r={};return d(t)&&Object.keys(t).forEach(function(e){r[e]=c(t[e],n)}),Object.keys(e).forEach(function(o){d(e[o])&&t[o]?r[o]=f(t[o],e[o],n):r[o]=c(e[o],n)}),r}function f(t,e,n){var r=Array.isArray(e),o=Array.isArray(t),a=n||{arrayMerge:u};if(r===o)return r?(a.arrayMerge||u)(t,e,n):l(t,e,n);return c(e,n)}function p(){function t(t,e){var n=p(t);return new Promise(function(t){f(n)?t((new v).getPalette(n,e)):n.onload=function(){t((new v).getPalette(n,e))}})}function e(t,e){return t.map(function(t,r){var o=1;return Array.isArray(e)&&e[r]&&(o=e[r]),n(t,o)})}function n(t,e){return"rgba("+t[0]+", "+t[1]+", "+t[2]+", "+e+")"}function r(t){var e=t.target,n=t.styles,r=t.palette,o=t.staticCallback;void 0===o&&(o=null);var a=t.obj;for(var i in n)n.hasOwnProperty(i)&&(e.style[i]=y(n[i],r));o&&o.call(e,a,m.options)}function o(t,e,n,r){for(var o in e)e.hasOwnProperty(o)&&!n.hasOwnProperty(o)?t.style[o]="":n.hasOwnProperty(o)&&(t.style[o]=y(n[o],r))}function a(t){m.options=E(b,t,{clone:!0,arrayMerge:g}),Object.keys(m.options).forEach(function(t){if(m.options[t]instanceof Error)throw m.options[t]})}function i(t){return(299*t[0]+587*t[1]+114*t[2])/1e3}function s(t){return i(t)<170}function c(t,e){return t.map(function(t){return s(t)?e.light:e.dark})}function u(t){var e=document.createElement("a");return e.href=t,e}function l(t){return document.location.host!==u(t).host}function f(t){return!!t.complete&&(void 0===t.naturalWidth||0!==t.naturalWidth)}function p(t){var e=t,n="IMG"!==e.tagName,r=n?t.style.backgroundImage.replace("url(","").replace(")","").replace(/"/gi,""):t.src,o=l(r);if(!e)throw Error("Target is not an element",e);if(n||o&&!e.crossOrigin){if(n&&!e.style.backgroundImage)throw Error("Tag provided is not an image and does not have a background-image style attached to it.");e=new Image(t.naturalWidth,t.naturalHeight),o&&(e.crossOrigin="anonymous"),e.src=r}return e}function g(t,e,n){return e}var h=!1,d=null,b={selector:Error("Please provide \u0430 selector in your options."),eventTarget:Error("Please provide an eventTarget as a parent for your image in the options."),image:Error("Please provide an image to sample."),styleTarget:null,contrastColors:{light:"#fff",dark:"#000"},activeClass:"palettify--active",readyClass:"palettify--ready",colorsToExtract:3,enterEvent:"mouseenter",leaveEvent:"mouseleave",styles:{opacities:[.5,.5,.5],static:{},dynamic:{}},staticCallback:null,beforeEnterCallback:null,afterEnterCallback:null,beforeLeaveCallback:null,afterLeaveCallback:null,onReadyCallback:null},m={options:{},data:[],collectElements:function(){var t="";if(!(d="string"==typeof m.options.selector?document.querySelector(m.options.selector):m.options.selector))throw new Error("Selector "+m.options.selector+" does not exist");t=d.querySelectorAll(m.options.eventTarget),[].slice.call(t,0).forEach(function(t){var e=t.querySelector(m.options.image),n=!0===m.options.styleTarget?t:t.querySelector(m.options.styleTarget||m.options.image),r={eventTarget:t,styleTarget:n,image:e,palette:{original:[],rgb:[],rgba:[]}};m.data.push(r)})},extractColorsAndAttachStyles:function(n){void 0===n&&(n=!1);var o=[];m.data.forEach(function(n,a){o[a]=t(n.image,m.options.colorsToExtract).then(function(t){n.palette.original=t,n.palette.rgb=e(n.palette.original,[]),n.palette.rgba=e(n.palette.original,m.options.styles.opacities),n.palette.contrastColors=c(n.palette.original,m.options.contrastColors),r({target:n.styleTarget,styles:m.options.styles.static,palette:n.palette,staticCallback:m.options.staticCallback,obj:n})})}),n||Promise.all(o).then(function(t){d.classList.add(m.options.readyClass),"function"==typeof m.options.onReadyCallback&&m.options.onReadyCallback.call(m,m)})},generateEnterHandler:function(t){return function(e){t.styleTarget&&("function"==typeof m.options.beforeEnterCallback&&m.options.beforeEnterCallback.call(t.styleTarget,t,m.options,e),t.styleTarget.classList.add(m.options.activeClass),r({target:t.styleTarget,styles:m.options.styles.dynamic,palette:t.palette,obj:t}),"function"==typeof m.options.afterEnterCallback&&m.options.afterEnterCallback.call(t.styleTarget,t,m.options,e))}},generateLeaveHandler:function(t){return function(e){var n=t.styleTarget;n&&("function"==typeof m.options.beforeLeaveCallback&&m.options.beforeLeaveCallback.call(t.styleTarget,t,m.options,e),n.classList.remove(m.options.activeClass),o(t.styleTarget,m.options.styles.dynamic,m.options.styles.static,t.palette),"function"==typeof m.options.afterLeaveCallback&&m.options.afterLeaveCallback.call(t.styleTarget,t,m.options,e))}},attachEventListeners:function(){var t=m.options,e=t.enterEvent,n=t.leaveEvent;e=Array.isArray(e)?e:[e],n=Array.isArray(n)?n:[n],m.data.forEach(function(t){t.enterHandler=m.generateEnterHandler(t),t.leaveHandler=m.generateLeaveHandler(t),e.forEach(function(e){t.eventTarget.addEventListener(e,t.enterHandler,!1)}),n.forEach(function(e){t.eventTarget.addEventListener(e,t.leaveHandler,!1)})})},detachEventListeners:function(){var t=m.options,e=t.enterEvent,n=t.leaveEvent;e=Array.isArray(e)?e:[e],n=Array.isArray(n)?n:[n],m.data.forEach(function(t){e.forEach(function(e){t.eventTarget.removeEventListener(e,t.enterHandler,!1)}),n.forEach(function(e){t.eventTarget.removeEventListener(e,t.leaveHandler,!1)})})},init:function(t){if(h)throw new Error("Palettify is already initialized");return a(t),m.collectElements(),m.extractColorsAndAttachStyles(),m.attachEventListeners(),h=!0,m},destroy:function(t){void 0===t&&(t=!0),m.detachEventListeners(),t&&m.cleanUp(),m.data=[],h=!1},reInit:function(){m.destroy(),m.init(m.options)},cleanUp:function(){m.data.forEach(function(t){for(var e in m.options.styles.static)m.options.styles.static.hasOwnProperty(e)&&(t.styleTarget.style[e]="")})},setOptions:function(t,e){void 0===e&&(e=!0),m.options=Object.assign({},m.options,t),e&&m.reInit()},isInitialized:function(){return h}};return m}var v=function(){var t=function(){},e=function(t){this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),document.body.appendChild(this.canvas),this.width=this.canvas.width=t.width,this.height=this.canvas.height=t.height,this.context.drawImage(t,0,0,this.width,this.height)};e.prototype.clear=function(){this.context.clearRect(0,0,this.width,this.height)},e.prototype.update=function(t){this.context.putImageData(t,0,0)},e.prototype.getPixelCount=function(){return this.width*this.height},e.prototype.getImageData=function(){return this.context.getImageData(0,0,this.width,this.height)},e.prototype.removeCanvas=function(){this.canvas.parentNode.removeChild(this.canvas)};var n={map:function(t,e){var n={};return e?t.map(function(t,r){return n.index=r,e.call(n,t)}):t.slice()},naturalOrder:function(t,e){return t<e?-1:t>e?1:0},sum:function(t,e){var n={};return t.reduce(e?function(t,r,o){return n.index=o,t+e.call(n,r)}:function(t,e){return t+e},0)},max:function(t,e){return Math.max.apply(null,e?n.map(t,e):t)}},r=function(){function t(t,e,n){return(t<<2*u)+(e<<u)+n}function e(t){function e(){n.sort(t),r=!0}var n=[],r=!1;return{push:function(t){n.push(t),r=!1},peek:function(t){return r||e(),void 0===t&&(t=n.length-1),n[t]},pop:function(){return r||e(),n.pop()},size:function(){return n.length},map:function(t){return n.map(t)},debug:function(){return r||e(),n}}}function r(t,e,n,r,o,a,i){var s=this;s.r1=t,s.r2=e,s.g1=n,s.g2=r,s.b1=o,s.b2=a,s.histo=i}function o(){this.vboxes=new e(function(t,e){return n.naturalOrder(t.vbox.count()*t.vbox.volume(),e.vbox.count()*e.vbox.volume())})}function a(e){var n,r,o,a,i=1<<3*u,s=new Array(i);return e.forEach(function(e){r=e[0]>>l,o=e[1]>>l,a=e[2]>>l,n=t(r,o,a),s[n]=(s[n]||0)+1}),s}function i(t,e){var n,o,a,i=1e6,s=0,c=1e6,u=0,f=1e6,p=0;return t.forEach(function(t){n=t[0]>>l,o=t[1]>>l,a=t[2]>>l,n<i?i=n:n>s&&(s=n),o<c?c=o:o>u&&(u=o),a<f?f=a:a>p&&(p=a)}),new r(i,s,c,u,f,p,e)}function s(e,r){if(r.count()){var o=r.r2-r.r1+1,a=r.g2-r.g1+1,i=r.b2-r.b1+1,s=n.max([o,a,i]);if(1==r.count())return[r.copy()];var c,u,l,f,p,v=0,g=[],h=[];if(s==o)for(c=r.r1;c<=r.r2;c++){for(f=0,u=r.g1;u<=r.g2;u++)for(l=r.b1;l<=r.b2;l++)p=t(c,u,l),f+=e[p]||0;v+=f,g[c]=v}else if(s==a)for(c=r.g1;c<=r.g2;c++){for(f=0,u=r.r1;u<=r.r2;u++)for(l=r.b1;l<=r.b2;l++)p=t(u,c,l),f+=e[p]||0;v+=f,g[c]=v}else for(c=r.b1;c<=r.b2;c++){for(f=0,u=r.r1;u<=r.r2;u++)for(l=r.g1;l<=r.g2;l++)p=t(u,l,c),f+=e[p]||0;v+=f,g[c]=v}return g.forEach(function(t,e){h[e]=v-t}),function(t){var e,n,o,a,i,s=t+"1",u=t+"2",l=0;for(c=r[s];c<=r[u];c++)if(g[c]>v/2){for(o=r.copy(),a=r.copy(),e=c-r[s],n=r[u]-c,i=e<=n?Math.min(r[u]-1,~~(c+n/2)):Math.max(r[s],~~(c-1-e/2));!g[i];)i++;for(l=h[i];!l&&g[i-1];)l=h[--i];return o[u]=i,a[s]=o[u]+1,[o,a]}}(s==o?"r":s==a?"g":"b")}}function c(t,r){function c(t,e){for(var n,r=1,o=0;o<f;)if(n=t.pop(),n.count()){var a=s(u,n),i=a[0],c=a[1];if(!i)return;if(t.push(i),c&&(t.push(c),r++),r>=e)return;if(o++>f)return}else t.push(n),o++}if(!t.length||r<2||r>256)return!1;var u=a(t),l=0;u.forEach(function(){l++});var v=i(t,u),g=new e(function(t,e){return n.naturalOrder(t.count(),e.count())});g.push(v),c(g,p*r);for(var h=new e(function(t,e){return n.naturalOrder(t.count()*t.volume(),e.count()*e.volume())});g.size();)h.push(g.pop());c(h,r-h.size());for(var y=new o;h.size();)y.push(h.pop());return y}var u=5,l=8-u,f=1e3,p=.75;return r.prototype={volume:function(t){var e=this;return e._volume&&!t||(e._volume=(e.r2-e.r1+1)*(e.g2-e.g1+1)*(e.b2-e.b1+1)),e._volume},count:function(e){var n=this,r=n.histo;if(!n._count_set||e){var o,a,i,s,c=0;for(a=n.r1;a<=n.r2;a++)for(i=n.g1;i<=n.g2;i++)for(s=n.b1;s<=n.b2;s++)o=t(a,i,s),c+=r[o]||0;n._count=c,n._count_set=!0}return n._count},copy:function(){var t=this;return new r(t.r1,t.r2,t.g1,t.g2,t.b1,t.b2,t.histo)},avg:function(e){var n=this,r=n.histo;if(!n._avg||e){var o,a,i,s,c,l=0,f=1<<8-u,p=0,v=0,g=0;for(a=n.r1;a<=n.r2;a++)for(i=n.g1;i<=n.g2;i++)for(s=n.b1;s<=n.b2;s++)c=t(a,i,s),o=r[c]||0,l+=o,p+=o*(a+.5)*f,v+=o*(i+.5)*f,g+=o*(s+.5)*f;n._avg=l?[~~(p/l),~~(v/l),~~(g/l)]:[~~(f*(n.r1+n.r2+1)/2),~~(f*(n.g1+n.g2+1)/2),~~(f*(n.b1+n.b2+1)/2)]}return n._avg},contains:function(t){var e=this,n=t[0]>>l,r=t[1]>>l,o=t[2]>>l;return n>=e.r1&&n<=e.r2&&r>=e.g1&&r<=e.g2&&o>=e.b1&&o<=e.b2}},o.prototype={push:function(t){this.vboxes.push({vbox:t,color:t.avg()})},palette:function(){return this.vboxes.map(function(t){return t.color})},size:function(){return this.vboxes.size()},map:function(t){for(var e=this.vboxes,n=0;n<e.size();n++)if(e.peek(n).vbox.contains(t))return e.peek(n).color;return this.nearest(t)},nearest:function(t){for(var e,n,r,o=this.vboxes,a=0;a<o.size();a++)((n=Math.sqrt(Math.pow(t[0]-o.peek(a).color[0],2)+Math.pow(t[1]-o.peek(a).color[1],2)+Math.pow(t[2]-o.peek(a).color[2],2)))<e||void 0===e)&&(e=n,r=o.peek(a).color);return r},forcebw:function(){var t=this.vboxes;t.sort(function(t,e){return n.naturalOrder(n.sum(t.color),n.sum(e.color))});var e=t[0].color;e[0]<5&&e[1]<5&&e[2]<5&&(t[0].color=[0,0,0]);var r=t.length-1,o=t[r].color;o[0]>251&&o[1]>251&&o[2]>251&&(t[r].color=[255,255,255])}},{quantize:c}}();return t.prototype.getColor=function(t,e){return this.getPalette(t,5,e)[0]},t.prototype.getPalette=function(t,n,o){(void 0===n||n<2||n>256)&&(n=10),(void 0===o||o<1)&&(o=10);for(var a,i,s,c,u=new e(t),l=u.getImageData(),f=l.data,p=u.getPixelCount(),v=[],g=0;g<p;g+=o)a=4*g,i=f[a+0],s=f[a+1],c=f[a+2],f[a+3]>=125&&(i>250&&s>250&&c>250||v.push([i,s,c]));var h=r.quantize(v,n),y=h?h.palette():null;return u.removeCanvas(),y},t.prototype.getColorFromUrl=function(t,e,n){sourceImage=document.createElement("img");var r=this;sourceImage.addEventListener("load",function(){e(r.getPalette(sourceImage,5,n)[0],t)}),sourceImage.src=t},t.prototype.getImageData=function(t,e){xhr=new XMLHttpRequest,xhr.open("GET",t,!0),xhr.responseType="arraybuffer",xhr.onload=function(t){if(200==this.status){uInt8Array=new Uint8Array(this.response),n=uInt8Array.length,binaryString=new Array(n);for(var n=0;n<uInt8Array.length;n++)binaryString[n]=String.fromCharCode(uInt8Array[n]);data=binaryString.join(""),base64=window.btoa(data),e("data:image/png;base64,"+base64)}},xhr.send()},t.prototype.getColorAsync=function(t,e,n){var r=this;this.getImageData(t,function(t){sourceImage=document.createElement("img"),sourceImage.addEventListener("load",function(){e(r.getPalette(sourceImage,5,n)[0],this)}),sourceImage.src=t})},t}(),g=/\{\{\s*(.*?)\s*\}\}/g,h=r,y=h,d=function(t){return o(t)&&!a(t)},b="function"==typeof Symbol&&Symbol.for,m=b?Symbol.for("react.element"):60103;f.all=function(t,e){if(!Array.isArray(t)||t.length<2)throw new Error("first argument should be an array with at least two elements");return t.reduce(function(t,n){return f(t,n,e)})};var E=f;return p});
\ No newline at end of file
diff --git a/loader/dobby/docs/scripts/palettify.styles.min.js b/loader/dobby/docs/scripts/palettify.styles.min.js
deleted file mode 100644
index d3675edb..00000000
--- a/loader/dobby/docs/scripts/palettify.styles.min.js
+++ /dev/null
@@ -1,6 +0,0 @@
-/*!
- * palettify v1.0.3 
- * (c) 2018 Dobromir Hristov
- * Released under the MIT License.
- */
-!function(o,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t(o.palettifyStyles=o.palettifyStyles||{})}(this,function(o){"use strict";const t={opacities:[.2,.2],dynamic:{boxShadow:"0 2px 2px {{rgba.0}}, 0 4px 4px {{rgba.0}}, 0 8px 8px {{rgba.0}}, 0 16px 16px {{rgba.0}}, 0 32px 32px {{rgba.1}}, 0 64px 64px {{rgba.1}}"}},e={static:{border:"10px solid {{rgb.0}}",borderWidth:"10px"},dynamic:{borderWidth:"0px"}},r={opacities:[],static:{color:"{{rgb.0}}"}},i={opacities:[],static:{backgroundColor:"{{rgb.0}}",color:"{{ contrastColors.0 }}"}};o.boxShadow=t,o.border=e,o.diagonalBackground=r,o.zoomOutRight=i,Object.defineProperty(o,"__esModule",{value:!0})});
\ No newline at end of file
diff --git a/loader/dobby/docs/styles/grid.min.css b/loader/dobby/docs/styles/grid.min.css
deleted file mode 100644
index f565b244..00000000
--- a/loader/dobby/docs/styles/grid.min.css
+++ /dev/null
@@ -1 +0,0 @@
-.grid-container{padding-right:.625rem;padding-left:.625rem;max-width:75rem;margin:0 auto}@media print, screen and (min-width: 40em){.grid-container{padding-right:.9375rem;padding-left:.9375rem}}.grid-container.fluid{padding-right:.625rem;padding-left:.625rem;max-width:100%;margin:0 auto}@media print, screen and (min-width: 40em){.grid-container.fluid{padding-right:.9375rem;padding-left:.9375rem}}.grid-container.full{padding-right:0;padding-left:0;max-width:100%;margin:0 auto}.grid-x{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row wrap;flex-flow:row wrap}.cell{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;min-height:0px;min-width:0px;width:100%}.cell.auto{-webkit-box-flex:1;-ms-flex:1 1 0px;flex:1 1 0px}.cell.shrink{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto}.grid-x>.auto{width:auto}.grid-x>.shrink{width:auto}.grid-x>.small-shrink,.grid-x>.small-full,.grid-x>.small-1,.grid-x>.small-2,.grid-x>.small-3,.grid-x>.small-4,.grid-x>.small-5,.grid-x>.small-6,.grid-x>.small-7,.grid-x>.small-8,.grid-x>.small-9,.grid-x>.small-10,.grid-x>.small-11,.grid-x>.small-12{-ms-flex-preferred-size:auto;flex-basis:auto}@media print, screen and (min-width: 40em){.grid-x>.medium-shrink,.grid-x>.medium-full,.grid-x>.medium-1,.grid-x>.medium-2,.grid-x>.medium-3,.grid-x>.medium-4,.grid-x>.medium-5,.grid-x>.medium-6,.grid-x>.medium-7,.grid-x>.medium-8,.grid-x>.medium-9,.grid-x>.medium-10,.grid-x>.medium-11,.grid-x>.medium-12{-ms-flex-preferred-size:auto;flex-basis:auto}}@media print, screen and (min-width: 64em){.grid-x>.large-shrink,.grid-x>.large-full,.grid-x>.large-1,.grid-x>.large-2,.grid-x>.large-3,.grid-x>.large-4,.grid-x>.large-5,.grid-x>.large-6,.grid-x>.large-7,.grid-x>.large-8,.grid-x>.large-9,.grid-x>.large-10,.grid-x>.large-11,.grid-x>.large-12{-ms-flex-preferred-size:auto;flex-basis:auto}}.grid-x>.small-1{width:8.33333%}.grid-x>.small-2{width:16.66667%}.grid-x>.small-3{width:25%}.grid-x>.small-4{width:33.33333%}.grid-x>.small-5{width:41.66667%}.grid-x>.small-6{width:50%}.grid-x>.small-7{width:58.33333%}.grid-x>.small-8{width:66.66667%}.grid-x>.small-9{width:75%}.grid-x>.small-10{width:83.33333%}.grid-x>.small-11{width:91.66667%}.grid-x>.small-12{width:100%}@media print, screen and (min-width: 40em){.grid-x>.medium-auto{-webkit-box-flex:1;-ms-flex:1 1 0px;flex:1 1 0px;width:auto}.grid-x>.medium-shrink{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.grid-x>.medium-1{width:8.33333%}.grid-x>.medium-2{width:16.66667%}.grid-x>.medium-3{width:25%}.grid-x>.medium-4{width:33.33333%}.grid-x>.medium-5{width:41.66667%}.grid-x>.medium-6{width:50%}.grid-x>.medium-7{width:58.33333%}.grid-x>.medium-8{width:66.66667%}.grid-x>.medium-9{width:75%}.grid-x>.medium-10{width:83.33333%}.grid-x>.medium-11{width:91.66667%}.grid-x>.medium-12{width:100%}}@media print, screen and (min-width: 64em){.grid-x>.large-auto{-webkit-box-flex:1;-ms-flex:1 1 0px;flex:1 1 0px;width:auto}.grid-x>.large-shrink{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.grid-x>.large-1{width:8.33333%}.grid-x>.large-2{width:16.66667%}.grid-x>.large-3{width:25%}.grid-x>.large-4{width:33.33333%}.grid-x>.large-5{width:41.66667%}.grid-x>.large-6{width:50%}.grid-x>.large-7{width:58.33333%}.grid-x>.large-8{width:66.66667%}.grid-x>.large-9{width:75%}.grid-x>.large-10{width:83.33333%}.grid-x>.large-11{width:91.66667%}.grid-x>.large-12{width:100%}}.grid-margin-x:not(.grid-x)>.cell{width:auto}.grid-margin-y:not(.grid-y)>.cell{height:auto}.grid-margin-x{margin-left:-.625rem;margin-right:-.625rem}@media print, screen and (min-width: 40em){.grid-margin-x{margin-left:-.9375rem;margin-right:-.9375rem}}.grid-margin-x>.cell{width:calc(100% - 1.25rem);margin-left:.625rem;margin-right:.625rem}@media print, screen and (min-width: 40em){.grid-margin-x>.cell{width:calc(100% - 1.875rem);margin-left:.9375rem;margin-right:.9375rem}}.grid-margin-x>.auto{width:auto}.grid-margin-x>.shrink{width:auto}.grid-margin-x>.small-1{width:calc(8.33333% - 1.25rem)}.grid-margin-x>.small-2{width:calc(16.66667% - 1.25rem)}.grid-margin-x>.small-3{width:calc(25% - 1.25rem)}.grid-margin-x>.small-4{width:calc(33.33333% - 1.25rem)}.grid-margin-x>.small-5{width:calc(41.66667% - 1.25rem)}.grid-margin-x>.small-6{width:calc(50% - 1.25rem)}.grid-margin-x>.small-7{width:calc(58.33333% - 1.25rem)}.grid-margin-x>.small-8{width:calc(66.66667% - 1.25rem)}.grid-margin-x>.small-9{width:calc(75% - 1.25rem)}.grid-margin-x>.small-10{width:calc(83.33333% - 1.25rem)}.grid-margin-x>.small-11{width:calc(91.66667% - 1.25rem)}.grid-margin-x>.small-12{width:calc(100% - 1.25rem)}@media print, screen and (min-width: 40em){.grid-margin-x>.auto{width:auto}.grid-margin-x>.shrink{width:auto}.grid-margin-x>.small-1{width:calc(8.33333% - 1.875rem)}.grid-margin-x>.small-2{width:calc(16.66667% - 1.875rem)}.grid-margin-x>.small-3{width:calc(25% - 1.875rem)}.grid-margin-x>.small-4{width:calc(33.33333% - 1.875rem)}.grid-margin-x>.small-5{width:calc(41.66667% - 1.875rem)}.grid-margin-x>.small-6{width:calc(50% - 1.875rem)}.grid-margin-x>.small-7{width:calc(58.33333% - 1.875rem)}.grid-margin-x>.small-8{width:calc(66.66667% - 1.875rem)}.grid-margin-x>.small-9{width:calc(75% - 1.875rem)}.grid-margin-x>.small-10{width:calc(83.33333% - 1.875rem)}.grid-margin-x>.small-11{width:calc(91.66667% - 1.875rem)}.grid-margin-x>.small-12{width:calc(100% - 1.875rem)}.grid-margin-x>.medium-auto{width:auto}.grid-margin-x>.medium-shrink{width:auto}.grid-margin-x>.medium-1{width:calc(8.33333% - 1.875rem)}.grid-margin-x>.medium-2{width:calc(16.66667% - 1.875rem)}.grid-margin-x>.medium-3{width:calc(25% - 1.875rem)}.grid-margin-x>.medium-4{width:calc(33.33333% - 1.875rem)}.grid-margin-x>.medium-5{width:calc(41.66667% - 1.875rem)}.grid-margin-x>.medium-6{width:calc(50% - 1.875rem)}.grid-margin-x>.medium-7{width:calc(58.33333% - 1.875rem)}.grid-margin-x>.medium-8{width:calc(66.66667% - 1.875rem)}.grid-margin-x>.medium-9{width:calc(75% - 1.875rem)}.grid-margin-x>.medium-10{width:calc(83.33333% - 1.875rem)}.grid-margin-x>.medium-11{width:calc(91.66667% - 1.875rem)}.grid-margin-x>.medium-12{width:calc(100% - 1.875rem)}}@media print, screen and (min-width: 64em){.grid-margin-x>.large-auto{width:auto}.grid-margin-x>.large-shrink{width:auto}.grid-margin-x>.large-1{width:calc(8.33333% - 1.875rem)}.grid-margin-x>.large-2{width:calc(16.66667% - 1.875rem)}.grid-margin-x>.large-3{width:calc(25% - 1.875rem)}.grid-margin-x>.large-4{width:calc(33.33333% - 1.875rem)}.grid-margin-x>.large-5{width:calc(41.66667% - 1.875rem)}.grid-margin-x>.large-6{width:calc(50% - 1.875rem)}.grid-margin-x>.large-7{width:calc(58.33333% - 1.875rem)}.grid-margin-x>.large-8{width:calc(66.66667% - 1.875rem)}.grid-margin-x>.large-9{width:calc(75% - 1.875rem)}.grid-margin-x>.large-10{width:calc(83.33333% - 1.875rem)}.grid-margin-x>.large-11{width:calc(91.66667% - 1.875rem)}.grid-margin-x>.large-12{width:calc(100% - 1.875rem)}}.grid-padding-x .grid-padding-x{margin-right:-.625rem;margin-left:-.625rem}@media print, screen and (min-width: 40em){.grid-padding-x .grid-padding-x{margin-right:-.9375rem;margin-left:-.9375rem}}.grid-container:not(.full)>.grid-padding-x{margin-right:-.625rem;margin-left:-.625rem}@media print, screen and (min-width: 40em){.grid-container:not(.full)>.grid-padding-x{margin-right:-.9375rem;margin-left:-.9375rem}}.grid-padding-x>.cell{padding-right:.625rem;padding-left:.625rem}@media print, screen and (min-width: 40em){.grid-padding-x>.cell{padding-right:.9375rem;padding-left:.9375rem}}.small-up-1>.cell{width:100%}.small-up-2>.cell{width:50%}.small-up-3>.cell{width:33.33333%}.small-up-4>.cell{width:25%}.small-up-5>.cell{width:20%}.small-up-6>.cell{width:16.66667%}.small-up-7>.cell{width:14.28571%}.small-up-8>.cell{width:12.5%}@media print, screen and (min-width: 40em){.medium-up-1>.cell{width:100%}.medium-up-2>.cell{width:50%}.medium-up-3>.cell{width:33.33333%}.medium-up-4>.cell{width:25%}.medium-up-5>.cell{width:20%}.medium-up-6>.cell{width:16.66667%}.medium-up-7>.cell{width:14.28571%}.medium-up-8>.cell{width:12.5%}}@media print, screen and (min-width: 64em){.large-up-1>.cell{width:100%}.large-up-2>.cell{width:50%}.large-up-3>.cell{width:33.33333%}.large-up-4>.cell{width:25%}.large-up-5>.cell{width:20%}.large-up-6>.cell{width:16.66667%}.large-up-7>.cell{width:14.28571%}.large-up-8>.cell{width:12.5%}}.grid-margin-x.small-up-1>.cell{width:calc(100% - 1.25rem)}.grid-margin-x.small-up-2>.cell{width:calc(50% - 1.25rem)}.grid-margin-x.small-up-3>.cell{width:calc(33.33333% - 1.25rem)}.grid-margin-x.small-up-4>.cell{width:calc(25% - 1.25rem)}.grid-margin-x.small-up-5>.cell{width:calc(20% - 1.25rem)}.grid-margin-x.small-up-6>.cell{width:calc(16.66667% - 1.25rem)}.grid-margin-x.small-up-7>.cell{width:calc(14.28571% - 1.25rem)}.grid-margin-x.small-up-8>.cell{width:calc(12.5% - 1.25rem)}@media print, screen and (min-width: 40em){.grid-margin-x.small-up-1>.cell{width:calc(100% - 1.25rem)}.grid-margin-x.small-up-2>.cell{width:calc(50% - 1.25rem)}.grid-margin-x.small-up-3>.cell{width:calc(33.33333% - 1.25rem)}.grid-margin-x.small-up-4>.cell{width:calc(25% - 1.25rem)}.grid-margin-x.small-up-5>.cell{width:calc(20% - 1.25rem)}.grid-margin-x.small-up-6>.cell{width:calc(16.66667% - 1.25rem)}.grid-margin-x.small-up-7>.cell{width:calc(14.28571% - 1.25rem)}.grid-margin-x.small-up-8>.cell{width:calc(12.5% - 1.25rem)}.grid-margin-x.medium-up-1>.cell{width:calc(100% - 1.875rem)}.grid-margin-x.medium-up-2>.cell{width:calc(50% - 1.875rem)}.grid-margin-x.medium-up-3>.cell{width:calc(33.33333% - 1.875rem)}.grid-margin-x.medium-up-4>.cell{width:calc(25% - 1.875rem)}.grid-margin-x.medium-up-5>.cell{width:calc(20% - 1.875rem)}.grid-margin-x.medium-up-6>.cell{width:calc(16.66667% - 1.875rem)}.grid-margin-x.medium-up-7>.cell{width:calc(14.28571% - 1.875rem)}.grid-margin-x.medium-up-8>.cell{width:calc(12.5% - 1.875rem)}}@media print, screen and (min-width: 64em){.grid-margin-x.large-up-1>.cell{width:calc(100% - 1.875rem)}.grid-margin-x.large-up-2>.cell{width:calc(50% - 1.875rem)}.grid-margin-x.large-up-3>.cell{width:calc(33.33333% - 1.875rem)}.grid-margin-x.large-up-4>.cell{width:calc(25% - 1.875rem)}.grid-margin-x.large-up-5>.cell{width:calc(20% - 1.875rem)}.grid-margin-x.large-up-6>.cell{width:calc(16.66667% - 1.875rem)}.grid-margin-x.large-up-7>.cell{width:calc(14.28571% - 1.875rem)}.grid-margin-x.large-up-8>.cell{width:calc(12.5% - 1.875rem)}}.small-margin-collapse{margin-right:0;margin-left:0}.small-margin-collapse>.cell{margin-right:0;margin-left:0}.small-margin-collapse>.small-1{width:8.33333%}.small-margin-collapse>.small-2{width:16.66667%}.small-margin-collapse>.small-3{width:25%}.small-margin-collapse>.small-4{width:33.33333%}.small-margin-collapse>.small-5{width:41.66667%}.small-margin-collapse>.small-6{width:50%}.small-margin-collapse>.small-7{width:58.33333%}.small-margin-collapse>.small-8{width:66.66667%}.small-margin-collapse>.small-9{width:75%}.small-margin-collapse>.small-10{width:83.33333%}.small-margin-collapse>.small-11{width:91.66667%}.small-margin-collapse>.small-12{width:100%}@media print, screen and (min-width: 40em){.small-margin-collapse>.medium-1{width:8.33333%}.small-margin-collapse>.medium-2{width:16.66667%}.small-margin-collapse>.medium-3{width:25%}.small-margin-collapse>.medium-4{width:33.33333%}.small-margin-collapse>.medium-5{width:41.66667%}.small-margin-collapse>.medium-6{width:50%}.small-margin-collapse>.medium-7{width:58.33333%}.small-margin-collapse>.medium-8{width:66.66667%}.small-margin-collapse>.medium-9{width:75%}.small-margin-collapse>.medium-10{width:83.33333%}.small-margin-collapse>.medium-11{width:91.66667%}.small-margin-collapse>.medium-12{width:100%}}@media print, screen and (min-width: 64em){.small-margin-collapse>.large-1{width:8.33333%}.small-margin-collapse>.large-2{width:16.66667%}.small-margin-collapse>.large-3{width:25%}.small-margin-collapse>.large-4{width:33.33333%}.small-margin-collapse>.large-5{width:41.66667%}.small-margin-collapse>.large-6{width:50%}.small-margin-collapse>.large-7{width:58.33333%}.small-margin-collapse>.large-8{width:66.66667%}.small-margin-collapse>.large-9{width:75%}.small-margin-collapse>.large-10{width:83.33333%}.small-margin-collapse>.large-11{width:91.66667%}.small-margin-collapse>.large-12{width:100%}}.small-padding-collapse{margin-right:0;margin-left:0}.small-padding-collapse>.cell{padding-right:0;padding-left:0}@media print, screen and (min-width: 40em){.medium-margin-collapse{margin-right:0;margin-left:0}.medium-margin-collapse>.cell{margin-right:0;margin-left:0}}@media print, screen and (min-width: 40em){.medium-margin-collapse>.small-1{width:8.33333%}.medium-margin-collapse>.small-2{width:16.66667%}.medium-margin-collapse>.small-3{width:25%}.medium-margin-collapse>.small-4{width:33.33333%}.medium-margin-collapse>.small-5{width:41.66667%}.medium-margin-collapse>.small-6{width:50%}.medium-margin-collapse>.small-7{width:58.33333%}.medium-margin-collapse>.small-8{width:66.66667%}.medium-margin-collapse>.small-9{width:75%}.medium-margin-collapse>.small-10{width:83.33333%}.medium-margin-collapse>.small-11{width:91.66667%}.medium-margin-collapse>.small-12{width:100%}}@media print, screen and (min-width: 40em){.medium-margin-collapse>.medium-1{width:8.33333%}.medium-margin-collapse>.medium-2{width:16.66667%}.medium-margin-collapse>.medium-3{width:25%}.medium-margin-collapse>.medium-4{width:33.33333%}.medium-margin-collapse>.medium-5{width:41.66667%}.medium-margin-collapse>.medium-6{width:50%}.medium-margin-collapse>.medium-7{width:58.33333%}.medium-margin-collapse>.medium-8{width:66.66667%}.medium-margin-collapse>.medium-9{width:75%}.medium-margin-collapse>.medium-10{width:83.33333%}.medium-margin-collapse>.medium-11{width:91.66667%}.medium-margin-collapse>.medium-12{width:100%}}@media print, screen and (min-width: 64em){.medium-margin-collapse>.large-1{width:8.33333%}.medium-margin-collapse>.large-2{width:16.66667%}.medium-margin-collapse>.large-3{width:25%}.medium-margin-collapse>.large-4{width:33.33333%}.medium-margin-collapse>.large-5{width:41.66667%}.medium-margin-collapse>.large-6{width:50%}.medium-margin-collapse>.large-7{width:58.33333%}.medium-margin-collapse>.large-8{width:66.66667%}.medium-margin-collapse>.large-9{width:75%}.medium-margin-collapse>.large-10{width:83.33333%}.medium-margin-collapse>.large-11{width:91.66667%}.medium-margin-collapse>.large-12{width:100%}}@media print, screen and (min-width: 40em){.medium-padding-collapse{margin-right:0;margin-left:0}.medium-padding-collapse>.cell{padding-right:0;padding-left:0}}@media print, screen and (min-width: 64em){.large-margin-collapse{margin-right:0;margin-left:0}.large-margin-collapse>.cell{margin-right:0;margin-left:0}}@media print, screen and (min-width: 64em){.large-margin-collapse>.small-1{width:8.33333%}.large-margin-collapse>.small-2{width:16.66667%}.large-margin-collapse>.small-3{width:25%}.large-margin-collapse>.small-4{width:33.33333%}.large-margin-collapse>.small-5{width:41.66667%}.large-margin-collapse>.small-6{width:50%}.large-margin-collapse>.small-7{width:58.33333%}.large-margin-collapse>.small-8{width:66.66667%}.large-margin-collapse>.small-9{width:75%}.large-margin-collapse>.small-10{width:83.33333%}.large-margin-collapse>.small-11{width:91.66667%}.large-margin-collapse>.small-12{width:100%}}@media print, screen and (min-width: 64em){.large-margin-collapse>.medium-1{width:8.33333%}.large-margin-collapse>.medium-2{width:16.66667%}.large-margin-collapse>.medium-3{width:25%}.large-margin-collapse>.medium-4{width:33.33333%}.large-margin-collapse>.medium-5{width:41.66667%}.large-margin-collapse>.medium-6{width:50%}.large-margin-collapse>.medium-7{width:58.33333%}.large-margin-collapse>.medium-8{width:66.66667%}.large-margin-collapse>.medium-9{width:75%}.large-margin-collapse>.medium-10{width:83.33333%}.large-margin-collapse>.medium-11{width:91.66667%}.large-margin-collapse>.medium-12{width:100%}}@media print, screen and (min-width: 64em){.large-margin-collapse>.large-1{width:8.33333%}.large-margin-collapse>.large-2{width:16.66667%}.large-margin-collapse>.large-3{width:25%}.large-margin-collapse>.large-4{width:33.33333%}.large-margin-collapse>.large-5{width:41.66667%}.large-margin-collapse>.large-6{width:50%}.large-margin-collapse>.large-7{width:58.33333%}.large-margin-collapse>.large-8{width:66.66667%}.large-margin-collapse>.large-9{width:75%}.large-margin-collapse>.large-10{width:83.33333%}.large-margin-collapse>.large-11{width:91.66667%}.large-margin-collapse>.large-12{width:100%}}@media print, screen and (min-width: 64em){.large-padding-collapse{margin-right:0;margin-left:0}.large-padding-collapse>.cell{padding-right:0;padding-left:0}}.small-offset-0{margin-left:0%}.grid-margin-x>.small-offset-0{margin-left:calc(0% + .625rem)}.small-offset-1{margin-left:8.33333%}.grid-margin-x>.small-offset-1{margin-left:calc(8.33333% + .625rem)}.small-offset-2{margin-left:16.66667%}.grid-margin-x>.small-offset-2{margin-left:calc(16.66667% + .625rem)}.small-offset-3{margin-left:25%}.grid-margin-x>.small-offset-3{margin-left:calc(25% + .625rem)}.small-offset-4{margin-left:33.33333%}.grid-margin-x>.small-offset-4{margin-left:calc(33.33333% + .625rem)}.small-offset-5{margin-left:41.66667%}.grid-margin-x>.small-offset-5{margin-left:calc(41.66667% + .625rem)}.small-offset-6{margin-left:50%}.grid-margin-x>.small-offset-6{margin-left:calc(50% + .625rem)}.small-offset-7{margin-left:58.33333%}.grid-margin-x>.small-offset-7{margin-left:calc(58.33333% + .625rem)}.small-offset-8{margin-left:66.66667%}.grid-margin-x>.small-offset-8{margin-left:calc(66.66667% + .625rem)}.small-offset-9{margin-left:75%}.grid-margin-x>.small-offset-9{margin-left:calc(75% + .625rem)}.small-offset-10{margin-left:83.33333%}.grid-margin-x>.small-offset-10{margin-left:calc(83.33333% + .625rem)}.small-offset-11{margin-left:91.66667%}.grid-margin-x>.small-offset-11{margin-left:calc(91.66667% + .625rem)}@media print, screen and (min-width: 40em){.medium-offset-0{margin-left:0%}.grid-margin-x>.medium-offset-0{margin-left:calc(0% + .9375rem)}.medium-offset-1{margin-left:8.33333%}.grid-margin-x>.medium-offset-1{margin-left:calc(8.33333% + .9375rem)}.medium-offset-2{margin-left:16.66667%}.grid-margin-x>.medium-offset-2{margin-left:calc(16.66667% + .9375rem)}.medium-offset-3{margin-left:25%}.grid-margin-x>.medium-offset-3{margin-left:calc(25% + .9375rem)}.medium-offset-4{margin-left:33.33333%}.grid-margin-x>.medium-offset-4{margin-left:calc(33.33333% + .9375rem)}.medium-offset-5{margin-left:41.66667%}.grid-margin-x>.medium-offset-5{margin-left:calc(41.66667% + .9375rem)}.medium-offset-6{margin-left:50%}.grid-margin-x>.medium-offset-6{margin-left:calc(50% + .9375rem)}.medium-offset-7{margin-left:58.33333%}.grid-margin-x>.medium-offset-7{margin-left:calc(58.33333% + .9375rem)}.medium-offset-8{margin-left:66.66667%}.grid-margin-x>.medium-offset-8{margin-left:calc(66.66667% + .9375rem)}.medium-offset-9{margin-left:75%}.grid-margin-x>.medium-offset-9{margin-left:calc(75% + .9375rem)}.medium-offset-10{margin-left:83.33333%}.grid-margin-x>.medium-offset-10{margin-left:calc(83.33333% + .9375rem)}.medium-offset-11{margin-left:91.66667%}.grid-margin-x>.medium-offset-11{margin-left:calc(91.66667% + .9375rem)}}@media print, screen and (min-width: 64em){.large-offset-0{margin-left:0%}.grid-margin-x>.large-offset-0{margin-left:calc(0% + .9375rem)}.large-offset-1{margin-left:8.33333%}.grid-margin-x>.large-offset-1{margin-left:calc(8.33333% + .9375rem)}.large-offset-2{margin-left:16.66667%}.grid-margin-x>.large-offset-2{margin-left:calc(16.66667% + .9375rem)}.large-offset-3{margin-left:25%}.grid-margin-x>.large-offset-3{margin-left:calc(25% + .9375rem)}.large-offset-4{margin-left:33.33333%}.grid-margin-x>.large-offset-4{margin-left:calc(33.33333% + .9375rem)}.large-offset-5{margin-left:41.66667%}.grid-margin-x>.large-offset-5{margin-left:calc(41.66667% + .9375rem)}.large-offset-6{margin-left:50%}.grid-margin-x>.large-offset-6{margin-left:calc(50% + .9375rem)}.large-offset-7{margin-left:58.33333%}.grid-margin-x>.large-offset-7{margin-left:calc(58.33333% + .9375rem)}.large-offset-8{margin-left:66.66667%}.grid-margin-x>.large-offset-8{margin-left:calc(66.66667% + .9375rem)}.large-offset-9{margin-left:75%}.grid-margin-x>.large-offset-9{margin-left:calc(75% + .9375rem)}.large-offset-10{margin-left:83.33333%}.grid-margin-x>.large-offset-10{margin-left:calc(83.33333% + .9375rem)}.large-offset-11{margin-left:91.66667%}.grid-margin-x>.large-offset-11{margin-left:calc(91.66667% + .9375rem)}}.grid-y{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-flow:column nowrap;flex-flow:column nowrap}.grid-y>.cell{width:auto}.grid-y>.auto{height:auto}.grid-y>.shrink{height:auto}.grid-y>.small-shrink,.grid-y>.small-full,.grid-y>.small-1,.grid-y>.small-2,.grid-y>.small-3,.grid-y>.small-4,.grid-y>.small-5,.grid-y>.small-6,.grid-y>.small-7,.grid-y>.small-8,.grid-y>.small-9,.grid-y>.small-10,.grid-y>.small-11,.grid-y>.small-12{-ms-flex-preferred-size:auto;flex-basis:auto}@media print, screen and (min-width: 40em){.grid-y>.medium-shrink,.grid-y>.medium-full,.grid-y>.medium-1,.grid-y>.medium-2,.grid-y>.medium-3,.grid-y>.medium-4,.grid-y>.medium-5,.grid-y>.medium-6,.grid-y>.medium-7,.grid-y>.medium-8,.grid-y>.medium-9,.grid-y>.medium-10,.grid-y>.medium-11,.grid-y>.medium-12{-ms-flex-preferred-size:auto;flex-basis:auto}}@media print, screen and (min-width: 64em){.grid-y>.large-shrink,.grid-y>.large-full,.grid-y>.large-1,.grid-y>.large-2,.grid-y>.large-3,.grid-y>.large-4,.grid-y>.large-5,.grid-y>.large-6,.grid-y>.large-7,.grid-y>.large-8,.grid-y>.large-9,.grid-y>.large-10,.grid-y>.large-11,.grid-y>.large-12{-ms-flex-preferred-size:auto;flex-basis:auto}}.grid-y>.small-1{height:8.33333%}.grid-y>.small-2{height:16.66667%}.grid-y>.small-3{height:25%}.grid-y>.small-4{height:33.33333%}.grid-y>.small-5{height:41.66667%}.grid-y>.small-6{height:50%}.grid-y>.small-7{height:58.33333%}.grid-y>.small-8{height:66.66667%}.grid-y>.small-9{height:75%}.grid-y>.small-10{height:83.33333%}.grid-y>.small-11{height:91.66667%}.grid-y>.small-12{height:100%}@media print, screen and (min-width: 40em){.grid-y>.medium-auto{-webkit-box-flex:1;-ms-flex:1 1 0px;flex:1 1 0px;height:auto}.grid-y>.medium-shrink{height:auto}.grid-y>.medium-1{height:8.33333%}.grid-y>.medium-2{height:16.66667%}.grid-y>.medium-3{height:25%}.grid-y>.medium-4{height:33.33333%}.grid-y>.medium-5{height:41.66667%}.grid-y>.medium-6{height:50%}.grid-y>.medium-7{height:58.33333%}.grid-y>.medium-8{height:66.66667%}.grid-y>.medium-9{height:75%}.grid-y>.medium-10{height:83.33333%}.grid-y>.medium-11{height:91.66667%}.grid-y>.medium-12{height:100%}}@media print, screen and (min-width: 64em){.grid-y>.large-auto{-webkit-box-flex:1;-ms-flex:1 1 0px;flex:1 1 0px;height:auto}.grid-y>.large-shrink{height:auto}.grid-y>.large-1{height:8.33333%}.grid-y>.large-2{height:16.66667%}.grid-y>.large-3{height:25%}.grid-y>.large-4{height:33.33333%}.grid-y>.large-5{height:41.66667%}.grid-y>.large-6{height:50%}.grid-y>.large-7{height:58.33333%}.grid-y>.large-8{height:66.66667%}.grid-y>.large-9{height:75%}.grid-y>.large-10{height:83.33333%}.grid-y>.large-11{height:91.66667%}.grid-y>.large-12{height:100%}}.grid-padding-y .grid-padding-y{margin-top:-.625rem;margin-bottom:-.625rem}@media print, screen and (min-width: 40em){.grid-padding-y .grid-padding-y{margin-top:-.9375rem;margin-bottom:-.9375rem}}.grid-padding-y>.cell{padding-top:.625rem;padding-bottom:.625rem}@media print, screen and (min-width: 40em){.grid-padding-y>.cell{padding-top:.9375rem;padding-bottom:.9375rem}}.grid-margin-y{margin-top:-.625rem;margin-bottom:-.625rem}@media print, screen and (min-width: 40em){.grid-margin-y{margin-top:-.9375rem;margin-bottom:-.9375rem}}.grid-margin-y>.cell{height:calc(100% - 1.25rem);margin-top:.625rem;margin-bottom:.625rem}@media print, screen and (min-width: 40em){.grid-margin-y>.cell{height:calc(100% - 1.875rem);margin-top:.9375rem;margin-bottom:.9375rem}}.grid-margin-y>.auto{height:auto}.grid-margin-y>.shrink{height:auto}.grid-margin-y>.small-1{height:calc(8.33333% - 1.25rem)}.grid-margin-y>.small-2{height:calc(16.66667% - 1.25rem)}.grid-margin-y>.small-3{height:calc(25% - 1.25rem)}.grid-margin-y>.small-4{height:calc(33.33333% - 1.25rem)}.grid-margin-y>.small-5{height:calc(41.66667% - 1.25rem)}.grid-margin-y>.small-6{height:calc(50% - 1.25rem)}.grid-margin-y>.small-7{height:calc(58.33333% - 1.25rem)}.grid-margin-y>.small-8{height:calc(66.66667% - 1.25rem)}.grid-margin-y>.small-9{height:calc(75% - 1.25rem)}.grid-margin-y>.small-10{height:calc(83.33333% - 1.25rem)}.grid-margin-y>.small-11{height:calc(91.66667% - 1.25rem)}.grid-margin-y>.small-12{height:calc(100% - 1.25rem)}@media print, screen and (min-width: 40em){.grid-margin-y>.auto{height:auto}.grid-margin-y>.shrink{height:auto}.grid-margin-y>.small-1{height:calc(8.33333% - 1.875rem)}.grid-margin-y>.small-2{height:calc(16.66667% - 1.875rem)}.grid-margin-y>.small-3{height:calc(25% - 1.875rem)}.grid-margin-y>.small-4{height:calc(33.33333% - 1.875rem)}.grid-margin-y>.small-5{height:calc(41.66667% - 1.875rem)}.grid-margin-y>.small-6{height:calc(50% - 1.875rem)}.grid-margin-y>.small-7{height:calc(58.33333% - 1.875rem)}.grid-margin-y>.small-8{height:calc(66.66667% - 1.875rem)}.grid-margin-y>.small-9{height:calc(75% - 1.875rem)}.grid-margin-y>.small-10{height:calc(83.33333% - 1.875rem)}.grid-margin-y>.small-11{height:calc(91.66667% - 1.875rem)}.grid-margin-y>.small-12{height:calc(100% - 1.875rem)}.grid-margin-y>.medium-auto{height:auto}.grid-margin-y>.medium-shrink{height:auto}.grid-margin-y>.medium-1{height:calc(8.33333% - 1.875rem)}.grid-margin-y>.medium-2{height:calc(16.66667% - 1.875rem)}.grid-margin-y>.medium-3{height:calc(25% - 1.875rem)}.grid-margin-y>.medium-4{height:calc(33.33333% - 1.875rem)}.grid-margin-y>.medium-5{height:calc(41.66667% - 1.875rem)}.grid-margin-y>.medium-6{height:calc(50% - 1.875rem)}.grid-margin-y>.medium-7{height:calc(58.33333% - 1.875rem)}.grid-margin-y>.medium-8{height:calc(66.66667% - 1.875rem)}.grid-margin-y>.medium-9{height:calc(75% - 1.875rem)}.grid-margin-y>.medium-10{height:calc(83.33333% - 1.875rem)}.grid-margin-y>.medium-11{height:calc(91.66667% - 1.875rem)}.grid-margin-y>.medium-12{height:calc(100% - 1.875rem)}}@media print, screen and (min-width: 64em){.grid-margin-y>.large-auto{height:auto}.grid-margin-y>.large-shrink{height:auto}.grid-margin-y>.large-1{height:calc(8.33333% - 1.875rem)}.grid-margin-y>.large-2{height:calc(16.66667% - 1.875rem)}.grid-margin-y>.large-3{height:calc(25% - 1.875rem)}.grid-margin-y>.large-4{height:calc(33.33333% - 1.875rem)}.grid-margin-y>.large-5{height:calc(41.66667% - 1.875rem)}.grid-margin-y>.large-6{height:calc(50% - 1.875rem)}.grid-margin-y>.large-7{height:calc(58.33333% - 1.875rem)}.grid-margin-y>.large-8{height:calc(66.66667% - 1.875rem)}.grid-margin-y>.large-9{height:calc(75% - 1.875rem)}.grid-margin-y>.large-10{height:calc(83.33333% - 1.875rem)}.grid-margin-y>.large-11{height:calc(91.66667% - 1.875rem)}.grid-margin-y>.large-12{height:calc(100% - 1.875rem)}}.grid-frame{overflow:hidden;position:relative;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;width:100vw}.cell .grid-frame{width:100%}.cell-block{overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch;-ms-overflow-stype:-ms-autohiding-scrollbar}.cell-block-y{overflow-y:auto;max-height:100%;-webkit-overflow-scrolling:touch;-ms-overflow-stype:-ms-autohiding-scrollbar}.cell-block-container{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;max-height:100%}.cell-block-container>.grid-x{max-height:100%;-ms-flex-wrap:nowrap;flex-wrap:nowrap}@media print, screen and (min-width: 40em){.medium-grid-frame{overflow:hidden;position:relative;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;width:100vw}.cell .medium-grid-frame{width:100%}.medium-cell-block{overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch;-ms-overflow-stype:-ms-autohiding-scrollbar}.medium-cell-block-container{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;max-height:100%}.medium-cell-block-container>.grid-x{max-height:100%;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.medium-cell-block-y{overflow-y:auto;max-height:100%;-webkit-overflow-scrolling:touch;-ms-overflow-stype:-ms-autohiding-scrollbar}}@media print, screen and (min-width: 64em){.large-grid-frame{overflow:hidden;position:relative;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;width:100vw}.cell .large-grid-frame{width:100%}.large-cell-block{overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch;-ms-overflow-stype:-ms-autohiding-scrollbar}.large-cell-block-container{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;max-height:100%}.large-cell-block-container>.grid-x{max-height:100%;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.large-cell-block-y{overflow-y:auto;max-height:100%;-webkit-overflow-scrolling:touch;-ms-overflow-stype:-ms-autohiding-scrollbar}}.grid-y.grid-frame{width:auto;overflow:hidden;position:relative;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;height:100vh}@media print, screen and (min-width: 40em){.grid-y.medium-grid-frame{width:auto;overflow:hidden;position:relative;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;height:100vh}}@media print, screen and (min-width: 64em){.grid-y.large-grid-frame{width:auto;overflow:hidden;position:relative;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;height:100vh}}.cell .grid-y.grid-frame{height:100%}@media print, screen and (min-width: 40em){.cell .grid-y.medium-grid-frame{height:100%}}@media print, screen and (min-width: 64em){.cell .grid-y.large-grid-frame{height:100%}}.grid-margin-y{margin-top:-.625rem;margin-bottom:-.625rem}@media print, screen and (min-width: 40em){.grid-margin-y{margin-top:-.9375rem;margin-bottom:-.9375rem}}.grid-margin-y>.cell{height:calc(100% - 1.25rem);margin-top:.625rem;margin-bottom:.625rem}@media print, screen and (min-width: 40em){.grid-margin-y>.cell{height:calc(100% - 1.875rem);margin-top:.9375rem;margin-bottom:.9375rem}}.grid-margin-y>.auto{height:auto}.grid-margin-y>.shrink{height:auto}.grid-margin-y>.small-1{height:calc(8.33333% - 1.25rem)}.grid-margin-y>.small-2{height:calc(16.66667% - 1.25rem)}.grid-margin-y>.small-3{height:calc(25% - 1.25rem)}.grid-margin-y>.small-4{height:calc(33.33333% - 1.25rem)}.grid-margin-y>.small-5{height:calc(41.66667% - 1.25rem)}.grid-margin-y>.small-6{height:calc(50% - 1.25rem)}.grid-margin-y>.small-7{height:calc(58.33333% - 1.25rem)}.grid-margin-y>.small-8{height:calc(66.66667% - 1.25rem)}.grid-margin-y>.small-9{height:calc(75% - 1.25rem)}.grid-margin-y>.small-10{height:calc(83.33333% - 1.25rem)}.grid-margin-y>.small-11{height:calc(91.66667% - 1.25rem)}.grid-margin-y>.small-12{height:calc(100% - 1.25rem)}@media print, screen and (min-width: 40em){.grid-margin-y>.auto{height:auto}.grid-margin-y>.shrink{height:auto}.grid-margin-y>.small-1{height:calc(8.33333% - 1.875rem)}.grid-margin-y>.small-2{height:calc(16.66667% - 1.875rem)}.grid-margin-y>.small-3{height:calc(25% - 1.875rem)}.grid-margin-y>.small-4{height:calc(33.33333% - 1.875rem)}.grid-margin-y>.small-5{height:calc(41.66667% - 1.875rem)}.grid-margin-y>.small-6{height:calc(50% - 1.875rem)}.grid-margin-y>.small-7{height:calc(58.33333% - 1.875rem)}.grid-margin-y>.small-8{height:calc(66.66667% - 1.875rem)}.grid-margin-y>.small-9{height:calc(75% - 1.875rem)}.grid-margin-y>.small-10{height:calc(83.33333% - 1.875rem)}.grid-margin-y>.small-11{height:calc(91.66667% - 1.875rem)}.grid-margin-y>.small-12{height:calc(100% - 1.875rem)}.grid-margin-y>.medium-auto{height:auto}.grid-margin-y>.medium-shrink{height:auto}.grid-margin-y>.medium-1{height:calc(8.33333% - 1.875rem)}.grid-margin-y>.medium-2{height:calc(16.66667% - 1.875rem)}.grid-margin-y>.medium-3{height:calc(25% - 1.875rem)}.grid-margin-y>.medium-4{height:calc(33.33333% - 1.875rem)}.grid-margin-y>.medium-5{height:calc(41.66667% - 1.875rem)}.grid-margin-y>.medium-6{height:calc(50% - 1.875rem)}.grid-margin-y>.medium-7{height:calc(58.33333% - 1.875rem)}.grid-margin-y>.medium-8{height:calc(66.66667% - 1.875rem)}.grid-margin-y>.medium-9{height:calc(75% - 1.875rem)}.grid-margin-y>.medium-10{height:calc(83.33333% - 1.875rem)}.grid-margin-y>.medium-11{height:calc(91.66667% - 1.875rem)}.grid-margin-y>.medium-12{height:calc(100% - 1.875rem)}}@media print, screen and (min-width: 64em){.grid-margin-y>.large-auto{height:auto}.grid-margin-y>.large-shrink{height:auto}.grid-margin-y>.large-1{height:calc(8.33333% - 1.875rem)}.grid-margin-y>.large-2{height:calc(16.66667% - 1.875rem)}.grid-margin-y>.large-3{height:calc(25% - 1.875rem)}.grid-margin-y>.large-4{height:calc(33.33333% - 1.875rem)}.grid-margin-y>.large-5{height:calc(41.66667% - 1.875rem)}.grid-margin-y>.large-6{height:calc(50% - 1.875rem)}.grid-margin-y>.large-7{height:calc(58.33333% - 1.875rem)}.grid-margin-y>.large-8{height:calc(66.66667% - 1.875rem)}.grid-margin-y>.large-9{height:calc(75% - 1.875rem)}.grid-margin-y>.large-10{height:calc(83.33333% - 1.875rem)}.grid-margin-y>.large-11{height:calc(91.66667% - 1.875rem)}.grid-margin-y>.large-12{height:calc(100% - 1.875rem)}}.grid-frame.grid-margin-y{height:calc(100vh + 1.25rem)}@media print, screen and (min-width: 40em){.grid-frame.grid-margin-y{height:calc(100vh + 1.875rem)}}@media print, screen and (min-width: 64em){.grid-frame.grid-margin-y{height:calc(100vh + 1.875rem)}}@media print, screen and (min-width: 40em){.grid-margin-y.medium-grid-frame{height:calc(100vh + 1.875rem)}}@media print, screen and (min-width: 64em){.grid-margin-y.large-grid-frame{height:calc(100vh + 1.875rem)}}
diff --git a/loader/dobby/docs/styles/palettify.min.css b/loader/dobby/docs/styles/palettify.min.css
deleted file mode 100644
index 1696ea92..00000000
--- a/loader/dobby/docs/styles/palettify.min.css
+++ /dev/null
@@ -1 +0,0 @@
-.diagonalBackground .figure{position:relative;overflow:hidden;min-width:220px;max-height:220px;text-align:center}.diagonalBackground .figure:hover .diagonal,.diagonalBackground .figure.hover .diagonal{-webkit-transform:skew(-45deg) scaleX(1);transform:skew(-45deg) scaleX(1);-webkit-transition:all 400ms cubic-bezier(0.175, 0.885, 0.32, 1.275);transition:all 400ms cubic-bezier(0.175, 0.885, 0.32, 1.275)}.diagonalBackground .figure:hover .caption .title,.diagonalBackground .figure:hover .caption .desc{-webkit-transform:translate3d(0%, 0%, 0);transform:translate3d(0%, 0%, 0);-webkit-transition-delay:0.2s;transition-delay:0.2s}.diagonalBackground .figure:hover .caption .title{opacity:1}.diagonalBackground .figure:hover .caption .desc{opacity:0.7}.diagonalBackground .figure *{-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-transition:all 0.6s ease;transition:all 0.6s ease}.diagonalBackground .figure img{opacity:1;-webkit-transition:opacity 0.35s;transition:opacity 0.35s;display:block}.diagonalBackground .figure .diagonal{width:100%;height:100%;position:absolute;left:0;bottom:0;opacity:0.90;-webkit-transform:skew(-45deg) scaleX(0);transform:skew(-45deg) scaleX(0);-webkit-transition:all 0.3s ease-in-out;transition:all 0.3s ease-in-out;background:#fff}.diagonalBackground .figure .caption{position:absolute;top:50%;left:0;width:100%;-webkit-transform:translateY(-50%);transform:translateY(-50%);z-index:1}.diagonalBackground .figure .title,.diagonalBackground .figure .desc{margin:0;width:100%;opacity:0;color:inherit}.diagonalBackground .figure .title{padding:0 30px;display:inline-block;font-weight:400;text-transform:uppercase}.diagonalBackground .figure .desc{padding:0 50px;font-size:0.8em;font-weight:500}.diagonalBackground .figure a{left:0;right:0;top:0;bottom:0;position:absolute;z-index:1}.zoomOutRight .figure{position:relative;min-width:230px;min-height:220px;text-align:right;line-height:1.4em;font-size:16px}.zoomOutRight .figure *{-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-transition:all 0.35s ease;transition:all 0.35s ease}.zoomOutRight .figure .image{position:absolute;right:0;top:0;opacity:1;width:100%;height:100%;background:center/cover no-repeat}.zoomOutRight .figure .caption{position:absolute;width:50%;top:50%;left:0;-webkit-transform:translateY(-50%);transform:translateY(-50%);padding:20px 0 20px 20px}.zoomOutRight .figure .title,.zoomOutRight .figure .desc{margin:0;width:100%;-webkit-transform:translateX(20px);transform:translateX(20px);opacity:0;color:inherit}.zoomOutRight .figure .title{text-transform:uppercase;margin-bottom:5px}.zoomOutRight .figure .desc{font-size:0.8em}.zoomOutRight .figure a{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1}.zoomOutRight .figure:hover{z-index:2}.zoomOutRight .figure:hover .image{right:-50%;-webkit-transform:scale(0.7);transform:scale(0.7);z-index:1}.zoomOutRight .figure:hover .caption .title,.zoomOutRight .figure:hover .caption .desc{-webkit-transform:translateX(0);transform:translateX(0);opacity:1}
diff --git a/loader/dobby/docs/styles/style.css b/loader/dobby/docs/styles/style.css
deleted file mode 100644
index bafe8f26..00000000
--- a/loader/dobby/docs/styles/style.css
+++ /dev/null
@@ -1,79 +0,0 @@
-.image-list {
-  list-style: none;
-  display: flex;
-  flex-flow: row wrap;
-  margin: auto -15px !important;
-}
-
-.image-list .hoverTarget {
-  flex: 0 0 33%;
-  padding: 15px;
-}
-
-.image-list .imageTarget {
-  transition: .3s linear 0s;
-  display: block;
-  height: auto;
-}
-
-.imageTarget {
-  transition: .3s;
-}
-
-.attachTo {
-  transition: .3s;
-  display: block;
-}
-
-.image-on-background {
-  height: 200px;
-  background-size: cover;
-}
-
-.grid-margin-x-bottom > .cell {
-  margin-bottom: 30px;
-}
-
-/* Docsify styles */
-.sidebar-toggle {
-  top: 0;
-  bottom: auto;
-}
-
-.sidebar-toggle, body.close .sidebar-toggle span {
-  background: #42b983;
-}
-
-.sidebar-toggle span {
-  background: #ffffff;
-  transition: .3s;
-}
-
-body.close .sidebar-toggle {
-  transition: none;
-}
-
-body.close .sidebar-toggle span:first-of-type {
-  transform: translate(0px, 4px) rotateZ(45deg);
-}
-
-body.close .sidebar-toggle span:nth-of-type(2) {
-  transform: translate(0px, -2px) rotateZ(-45deg);
-}
-
-body.close .sidebar-toggle span:last-of-type {
-  opacity: 0;
-  transform: translateY(-8px);
-}
-
-@media screen and (max-width: 768px) {
-  .hoverTarget {
-    flex: 1 1 50%;
-  }
-}
-
-@media screen and (min-width: 769px) {
-  .sidebar-toggle {
-    display: none;
-  }
-}
diff --git a/loader/dobby/example/CMakeLists.txt b/loader/dobby/example/CMakeLists.txt
deleted file mode 100644
index d5ac28c7..00000000
--- a/loader/dobby/example/CMakeLists.txt
+++ /dev/null
@@ -1,21 +0,0 @@
-if(SYSTEM.Darwin)
-  add_executable(darwin_example
-    main.cc
-    darwin_common_api.cc
-  )
-
-  target_link_libraries(darwin_example
-    DobbyX
-  )
-endif()
-
-if(SYSTEM.Android)
-  add_executable(android_example
-    main.cc
-    android_common_api.cc
-    )
-
-  target_link_libraries(android_example
-    dobby
-    )
-endif()
\ No newline at end of file
diff --git a/loader/dobby/example/android_common_api.cc b/loader/dobby/example/android_common_api.cc
deleted file mode 100644
index 5213f6fe..00000000
--- a/loader/dobby/example/android_common_api.cc
+++ /dev/null
@@ -1,182 +0,0 @@
-
-#include "dobby.h"
-
-#include "logging/logging.h"
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <unistd.h>
-#include <string.h>
-#include <pthread.h>
-
-#include <map>
-
-std::map<void *, const char *> *func_map;
-
-void common_handler(RegisterContext *ctx, const HookEntryInfo *info) {
-  auto iter = func_map->find(info->function_address);
-  if (iter != func_map->end()) {
-    LOG(1, "func %s:%p invoke", iter->second, iter->first);
-  }
-}
-
-// clang-format off
-const char *func_array[] = {
-   "__loader_dlopen",
-   "dlsym",
-   "dlclose",
-
-   "open",
-   "write",
-   "read",
-   "close",
-
-   "socket",
-   "connect",
-   "bind",
-   "listen",
-   "accept",
-   "send",
-   "recv",
-
-   // art::gc::Heap::PreZygoteFork
-   "_ZN3art2gc4Heap13PreZygoteForkEv",
-
-   // art::ClassLinker::DefineClass
-   "_ZN3art11ClassLinker11DefineClassEPNS_6ThreadEPKcmNS_6HandleINS_6mirror11ClassLoaderEEERKNS_7DexFileERKNS_3dex8ClassDefE",
-
-    // art::ClassLinker::ShouldUseInterpreterEntrypoint
-   "_ZN3art11ClassLinker30ShouldUseInterpreterEntrypointEPNS_9ArtMethodEPKv",
-
-   "_ZN3art11ClassLinkerC2EPNS_11InternTableE",
-   "_ZN3art11ClassLinkerC2EPNS_11InternTableEb",
-   "_ZN3art9hiddenapi6detail28ShouldDenyAccessToMemberImplINS_9ArtMethodEEEbPT_NS0_7ApiListENS0_12AccessMethodE",
-   "_ZN3art9hiddenapi6detail28ShouldDenyAccessToMemberImplINS_8ArtFieldEEEbPT_NS0_7ApiListENS0_12AccessMethodE",
-   "_ZN3art14OatFileManager24SetOnlyUseSystemOatFilesEbb",
-   "_ZN3art7Runtime4InitEONS_18RuntimeArgumentMapE",
-   "_ZN3art2gc4Heap13PreZygoteForkEv",
-   "_ZN3art6mirror5Class15IsInSamePackageENS_6ObjPtrIS1_EE",
-   "_ZNK23FileDescriptorWhitelist9IsAllowedERKNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEE",
-};
-// clang-format on
-
-namespace art {
-namespace gc {
-namespace Heap {
-namespace _11 {
-uint8_t PreZygoteFork[] = {
-    0x2D, 0xE9, 0xF0, 0x4F, 0xAD, 0xF2, 0x04, 0x4D, 0x07, 0x46,
-};
-}
-} // namespace Heap
-} // namespace gc
-} // namespace art
-
-#if 1
-__attribute__((constructor)) static void ctor() {
-  void *func = NULL;
-  log_set_level(0);
-
-  func_map = new std::map<void *, const char *>();
-
-  for (int i = 0; i < sizeof(func_array) / sizeof(char *); ++i) {
-    func = DobbySymbolResolver(NULL, func_array[i]);
-    if (func == NULL) {
-      LOG(1, "func %s not resolve", func_array[i]);
-      continue;
-    }
-    func_map->insert(std::pair<void *, const char *>(func, func_array[i]));
-    DobbyInstrument(func, common_handler);
-  }
-  return;
-
-  DobbyInstrument((void *)((addr_t)art::gc::Heap::_11::PreZygoteFork + 1), common_handler);
-
-  pthread_t socket_server;
-  uint64_t socket_demo_server(void *ctx);
-  pthread_create(&socket_server, NULL, (void *(*)(void *))socket_demo_server, NULL);
-
-  usleep(1000);
-  pthread_t socket_client;
-  uint64_t socket_demo_client(void *ctx);
-  pthread_create(&socket_client, NULL, (void *(*)(void *))socket_demo_client, NULL);
-}
-
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-#define PORT 8080
-
-uint64_t socket_demo_server(void *ctx) {
-  int server_fd, new_socket, valread;
-  struct sockaddr_in address;
-  int opt = 1;
-  int addrlen = sizeof(address);
-  char buffer[1024] = {0};
-  char *hello = "Hello from server";
-
-  // Creating socket file descriptor
-  if ((server_fd = socket(AF_INET, SOCK_STREAM, 0)) == 0) {
-    perror("socket failed");
-    exit(EXIT_FAILURE);
-  }
-
-  // Forcefully attaching socket to the port 8080
-  if (setsockopt(server_fd, SOL_SOCKET, SO_REUSEADDR | SO_REUSEPORT, &opt, sizeof(opt))) {
-    perror("setsockopt");
-    exit(EXIT_FAILURE);
-  }
-  address.sin_family = AF_INET;
-  address.sin_addr.s_addr = INADDR_ANY;
-  address.sin_port = htons(PORT);
-
-  // Forcefully attaching socket to the port 8080
-  if (bind(server_fd, (struct sockaddr *)&address, sizeof(address)) < 0) {
-    perror("bind failed");
-    exit(EXIT_FAILURE);
-  }
-  if (listen(server_fd, 3) < 0) {
-    perror("listen");
-    exit(EXIT_FAILURE);
-  }
-  if ((new_socket = accept(server_fd, (struct sockaddr *)&address, (socklen_t *)&addrlen)) < 0) {
-    perror("accept");
-    exit(EXIT_FAILURE);
-  }
-  valread = recv(new_socket, buffer, 1024, 0);
-  printf("%s\n", buffer);
-  send(new_socket, hello, strlen(hello), 0);
-  printf("Hello message sent\n");
-  return 0;
-}
-
-uint64_t socket_demo_client(void *ctx) {
-  int sock = 0, valread;
-  struct sockaddr_in serv_addr;
-  char *hello = "Hello from client";
-  char buffer[1024] = {0};
-  if ((sock = socket(AF_INET, SOCK_STREAM, 0)) < 0) {
-    printf("\n Socket creation error \n");
-    return -1;
-  }
-
-  serv_addr.sin_family = AF_INET;
-  serv_addr.sin_port = htons(PORT);
-
-  // Convert IPv4 and IPv6 addresses from text to binary form
-  if (inet_pton(AF_INET, "127.0.0.1", &serv_addr.sin_addr) <= 0) {
-    printf("\nInvalid address/ Address not supported \n");
-    return -1;
-  }
-
-  if (connect(sock, (struct sockaddr *)&serv_addr, sizeof(serv_addr)) < 0) {
-    printf("\nConnection Failed \n");
-    return -1;
-  }
-  send(sock, hello, strlen(hello), 0);
-  printf("Hello message sent\n");
-  valread = recv(sock, buffer, 1024, 0);
-  printf("%s\n", buffer);
-  return 0;
-}
-#endif
\ No newline at end of file
diff --git a/loader/dobby/example/darwin_common_api.cc b/loader/dobby/example/darwin_common_api.cc
deleted file mode 100644
index eb5f52ae..00000000
--- a/loader/dobby/example/darwin_common_api.cc
+++ /dev/null
@@ -1,164 +0,0 @@
-
-#include "dobby.h"
-
-#include "logging/logging.h"
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <unistd.h>
-#include <string.h>
-#include <pthread.h>
-
-#include <map>
-
-std::map<void *, const char *> *func_map;
-
-void common_handler(RegisterContext *ctx, const HookEntryInfo *info) {
-  auto iter = func_map->find(info->function_address);
-  if (iter != func_map->end()) {
-    LOG(1, "func %s:%p invoke", iter->second, iter->first);
-  }
-}
-
-// clang-format off
-const char *func_array[] = {
-   "__loader_dlopen",
-   "dlsym",
-   "dlclose",
-
-   "open",
-   "write",
-   "read",
-   "close",
-
-   "socket",
-   "connect",
-   "bind",
-   "listen",
-   "accept",
-   "send",
-   "recv",
-
-};
-// clang-format on
-
-typeof(pthread_create) *orig_pthread_create;
-int fake_pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine)(void *), void *arg) {
-  LOG(1, "pthread_create: %p", start_routine);
-  return orig_pthread_create(thread, attr, start_routine, arg);
-}
-
-#if 1
-__attribute__((constructor)) static void ctor() {
-  void *func = NULL;
-  log_set_level(1);
-
-  func_map = new std::map<void *, const char *>();
-
-  for (int i = 0; i < sizeof(func_array) / sizeof(char *); ++i) {
-    func = DobbySymbolResolver(NULL, func_array[i]);
-    if (func == NULL) {
-      LOG(1, "func %s not resolve", func_array[i]);
-      continue;
-    }
-    func_map->insert(std::pair<void *, const char *>(func, func_array[i]));
-  }
-
-  for (auto i = func_map->begin(), e = func_map->end(); i != e; i++) {
-    DobbyInstrument(i->first, common_handler);
-  }
-
-  DobbyGlobalOffsetTableReplace(NULL, "_pthread_create", (void *)fake_pthread_create, (void **)&orig_pthread_create);
-
-  pthread_t socket_server;
-  uint64_t socket_demo_server(void *ctx);
-  pthread_create(&socket_server, NULL, (void *(*)(void *))socket_demo_server, NULL);
-
-  usleep(1000);
-  pthread_t socket_client;
-  uint64_t socket_demo_client(void *ctx);
-  pthread_create(&socket_client, NULL, (void *(*)(void *))socket_demo_client, NULL);
-
-  pthread_join(socket_client, 0);
-  pthread_join(socket_server, 0);
-}
-
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-#define PORT 8989
-
-uint64_t socket_demo_server(void *ctx) {
-  int server_fd, new_socket, valread;
-  struct sockaddr_in address;
-  int opt = 1;
-  int addrlen = sizeof(address);
-  char buffer[1024] = {0};
-  char *hello = "Hello from server";
-
-  // Creating socket file descriptor
-  if ((server_fd = socket(AF_INET, SOCK_STREAM, 0)) == -1) {
-    perror("socket failed");
-    exit(EXIT_FAILURE);
-  }
-
-  // Forcefully attaching socket to the port 8080
-  if (setsockopt(server_fd, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(opt))) {
-    perror("setsockopt");
-    exit(EXIT_FAILURE);
-  }
-
-  address.sin_family = AF_INET;
-  address.sin_addr.s_addr = INADDR_ANY;
-  address.sin_port = htons(PORT);
-
-  // Forcefully attaching socket to the port 8080
-  if (bind(server_fd, (struct sockaddr *)&address, sizeof(address)) < 0) {
-    perror("bind failed");
-    exit(EXIT_FAILURE);
-  }
-  if (listen(server_fd, 3) < 0) {
-    perror("listen");
-    exit(EXIT_FAILURE);
-  }
-  if ((new_socket = accept(server_fd, (struct sockaddr *)&address, (socklen_t *)&addrlen)) < 0) {
-    perror("accept");
-    exit(EXIT_FAILURE);
-  }
-  valread = recv(new_socket, buffer, 1024, 0);
-  printf("%s\n", buffer);
-  send(new_socket, hello, strlen(hello), 0);
-  printf("Hello message sent\n");
-  return 0;
-}
-
-uint64_t socket_demo_client(void *ctx) {
-  int sock = 0, valread;
-  struct sockaddr_in serv_addr;
-  char *hello = "Hello from client";
-  char buffer[1024] = {0};
-  if ((sock = socket(AF_INET, SOCK_STREAM, 0)) < 0) {
-    printf("\n Socket creation error \n");
-    return -1;
-  }
-
-  serv_addr.sin_family = AF_INET;
-  serv_addr.sin_port = htons(PORT);
-
-  // Convert IPv4 and IPv6 addresses from text to binary form
-  if (inet_pton(AF_INET, "127.0.0.1", &serv_addr.sin_addr) <= 0) {
-    printf("\nInvalid address/ Address not supported \n");
-    return -1;
-  }
-
-  if (connect(sock, (struct sockaddr *)&serv_addr, sizeof(serv_addr)) < 0) {
-    printf("\nConnection Failed \n");
-    return -1;
-  }
-  send(sock, hello, strlen(hello), 0);
-  printf("Hello message sent\n");
-  valread = recv(sock, buffer, 1024, 0);
-  printf("%s\n", buffer);
-  return 0;
-}
-#endif
diff --git a/loader/dobby/example/main.cc b/loader/dobby/example/main.cc
deleted file mode 100644
index b50e9950..00000000
--- a/loader/dobby/example/main.cc
+++ /dev/null
@@ -1,9 +0,0 @@
-#include <stdio.h>
-#include <iostream>
-
-int main(int argc, char const *argv[]) {
-
-  std::cout << "Start..." << std::endl;
-
-  return 0;
-}
\ No newline at end of file
diff --git a/loader/dobby/external/logging/CMakeLists.txt b/loader/dobby/external/logging/CMakeLists.txt
deleted file mode 100644
index db01ceef..00000000
--- a/loader/dobby/external/logging/CMakeLists.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-include_directories(.)
-
-set(SOURCE_FILE_LIST
-  ${CMAKE_CURRENT_SOURCE_DIR}/cxxlogging.cc
-  ${CMAKE_CURRENT_SOURCE_DIR}/logging.c
-)
-
-add_library(logging STATIC
-  ${SOURCE_FILE_LIST}
-  ${SOURCE_HEADER_LIST}
-)
\ No newline at end of file
diff --git a/loader/dobby/external/logging/cxxlogging.cc b/loader/dobby/external/logging/cxxlogging.cc
deleted file mode 100644
index 8db8a8f4..00000000
--- a/loader/dobby/external/logging/cxxlogging.cc
+++ /dev/null
@@ -1,23 +0,0 @@
-#include "logging/cxxlogging.h"
-
-#include <cstring>
-#include <cstdio>
-#include <cstdarg>
-#include <vector>
-
-void Logger::setLogLevel(LogLevel level) {
-  log_level_ = level;
-}
-
-void Logger::log(LogLevel level, const char *tag, const char *fmt, ...) {
-  if (level > log_level_) {
-    va_list ap;
-
-    va_start(ap, fmt);
-    vprintf(fmt, ap);
-    va_end(ap);
-  }
-}
-
-void Logger::LogFatal(const char *fmt, ...) {
-}
\ No newline at end of file
diff --git a/loader/dobby/external/logging/logging.c b/loader/dobby/external/logging/logging.c
deleted file mode 100644
index 42372d60..00000000
--- a/loader/dobby/external/logging/logging.c
+++ /dev/null
@@ -1,110 +0,0 @@
-#include "logging/logging.h"
-
-#include <stdio.h>
-#include <stdarg.h> // va_start
-
-#include <string.h>
-#include <fcntl.h>
-
-#if defined(_POSIX_VERSION) || defined(__APPLE__)
-#include <unistd.h>
-#include <syslog.h>
-#endif
-
-#if defined(_WIN32)
-#define PUBLIC
-#else
-#define PUBLIC   __attribute__((visibility("default")))
-#define INTERNAL __attribute__((visibility("internal")))
-#endif
-
-static int _log_level = 1;
-
-PUBLIC void log_set_level(int level) {
-  _log_level = level;
-}
-
-static int _syslog_enabled = 0;
-
-PUBLIC void log_switch_to_syslog(void) {
-  _syslog_enabled = 1;
-}
-
-static int         _file_log_enabled = 0;
-static const char *log_file_path     = NULL;
-static int         log_file_fd       = -1;
-static FILE *      log_file_stream   = NULL;
-
-PUBLIC void log_switch_to_file(const char *path) {
-  _file_log_enabled = 1;
-  log_file_path     = strdup(path);
-
-#if 0
-  log_file_fd = open(log_file_path, O_WRONLY | O_CREAT | O_APPEND, 0666);
-#endif
-  log_file_stream = fopen(log_file_path, "a+");
-}
-
-static int check_log_file_available() {
-  if (log_file_stream)
-    return 1;
-
-  if (log_file_path) {
-    log_file_stream = fopen(log_file_path, "a+");
-  }
-
-  if (log_file_stream)
-    return 1;
-
-  return 0;
-}
-
-PUBLIC int log_internal_impl(unsigned int level, const char *fmt, ...) {
-  if ((int)level < _log_level)
-    return 0;
-
-  va_list ap;
-  va_start(ap, fmt);
-#if defined(__clang__)
-#pragma clang diagnostic ignored "-Wformat"
-#endif
-#if defined(_POSIX_VERSION) || defined(__APPLE__)
-  if (_syslog_enabled) {
-    vsyslog(LOG_ERR, fmt, ap);
-  }
-#endif
-  if (_file_log_enabled) {
-    if (check_log_file_available()) {
-#define MAX_PRINT_BUFFER_SIZE 1024
-      char buffer[MAX_PRINT_BUFFER_SIZE] = {0};
-      vsnprintf(buffer, MAX_PRINT_BUFFER_SIZE - 1, fmt, ap);
-      if (fwrite(buffer, sizeof(char), strlen(buffer) + 1, log_file_stream) == -1) {
-        // log_file_fd invalid
-        log_file_stream = NULL;
-        if (check_log_file_available()) {
-          // try again
-          fwrite(buffer, sizeof(char), strlen(buffer) + 1, log_file_stream);
-        }
-      }
-      fflush(log_file_stream);
-    } else {
-      vprintf(fmt, ap);
-    }
-  }
-
-  if (!_syslog_enabled && !_file_log_enabled) {
-#if defined(__ANDROID__)
-#define ANDROID_LOG_TAG "Dobby"
-#include <android/log.h>
-    __android_log_vprint(ANDROID_LOG_INFO, ANDROID_LOG_TAG, fmt, ap);
-#else
-    vprintf(fmt, ap);
-#endif
-  }
-
-#if defined(__clang__)
-#pragma clang diagnostic warning "-Wformat"
-#endif
-  va_end(ap);
-  return 0;
-}
diff --git a/loader/dobby/external/logging/logging/check_logging.h b/loader/dobby/external/logging/logging/check_logging.h
deleted file mode 100644
index d13e947d..00000000
--- a/loader/dobby/external/logging/logging/check_logging.h
+++ /dev/null
@@ -1,87 +0,0 @@
-
-#ifndef CHECK_LOGGING_H_
-#define CHECK_LOGGING_H_
-
-#include "logging.h"
-
-#define CHECK_WITH_MSG(condition, message)                                                                             \
-  do {                                                                                                                 \
-    if (!(condition)) {                                                                                                \
-      FATAL("Check failed: %s.\n", message);                                                                           \
-    }                                                                                                                  \
-  } while (0)
-#define CHECK(condition) CHECK_WITH_MSG(condition, #condition)
-
-#ifdef LOGGING_DEBUG
-
-#define DCHECK_WITH_MSG(condition, message)                                                                            \
-  do {                                                                                                                 \
-    if (!(condition)) {                                                                                                \
-      FATAL("%s", message);                                                                                            \
-    }                                                                                                                  \
-  } while (0)
-#define DCHECK(condition) DCHECK_WITH_MSG(condition, #condition)
-
-// Helper macro for binary operators.
-// Don't use this macro directly in your code, use CHECK_EQ et al below.
-#define CHECK_OP(name, op, lhs, rhs)                                                                                   \
-  do {                                                                                                                 \
-    if (!(lhs op rhs)) {                                                                                               \
-      FATAL(" Check failed: %s.\n", #lhs " " #op " " #rhs);                                                            \
-    }                                                                                                                  \
-  } while (0)
-
-#define DCHECK_OP(name, op, lhs, rhs)                                                                                  \
-  do {                                                                                                                 \
-    if (!((lhs)op(rhs))) {                                                                                             \
-      FATAL("%s", "");                                                                                                 \
-    }                                                                                                                  \
-  } while (0)
-
-#else
-
-// Make all CHECK functions discard their log strings to reduce code
-// bloat for official release builds.
-#define CHECK_OP(name, op, lhs, rhs)                                                                                   \
-  do {                                                                                                                 \
-    bool _cond = lhs op rhs;                                                                                           \
-    CHECK_WITH_MSG(_cond, #lhs " " #op " " #rhs "\n");                                                                 \
-  } while (0)
-
-#define DCHECK_WITH_MSG(condition, msg) void(0);
-
-#endif
-
-#define CHECK_EQ(lhs, rhs) CHECK_OP(EQ, ==, lhs, rhs)
-#define CHECK_NE(lhs, rhs) CHECK_OP(NE, !=, lhs, rhs)
-#define CHECK_LE(lhs, rhs) CHECK_OP(LE, <=, lhs, rhs)
-#define CHECK_LT(lhs, rhs) CHECK_OP(LT, <, lhs, rhs)
-#define CHECK_GE(lhs, rhs) CHECK_OP(GE, >=, lhs, rhs)
-#define CHECK_GT(lhs, rhs) CHECK_OP(GT, >, lhs, rhs)
-#define CHECK_NULL(val) CHECK((val) == NULL)
-#define CHECK_NOT_NULL(val) CHECK((val) != NULL)
-
-#ifdef LOGGING_DEBUG
-#define DCHECK_EQ(lhs, rhs) DCHECK_OP(EQ, ==, lhs, rhs)
-#define DCHECK_NE(lhs, rhs) DCHECK_OP(NE, !=, lhs, rhs)
-#define DCHECK_GT(lhs, rhs) DCHECK_OP(GT, >, lhs, rhs)
-#define DCHECK_GE(lhs, rhs) DCHECK_OP(GE, >=, lhs, rhs)
-#define DCHECK_LT(lhs, rhs) DCHECK_OP(LT, <, lhs, rhs)
-#define DCHECK_LE(lhs, rhs) DCHECK_OP(LE, <=, lhs, rhs)
-#define DCHECK_NULL(val) DCHECK((val) == nullptr)
-#define DCHECK_NOT_NULL(val) DCHECK((val) != nullptr)
-#define DCHECK_IMPLIES(lhs, rhs) DCHECK_WITH_MSG(!(lhs) || (rhs), #lhs " implies " #rhs)
-#else
-#define DCHECK(condition) ((void)0)
-#define DCHECK_EQ(v1, v2) ((void)0)
-#define DCHECK_NE(v1, v2) ((void)0)
-#define DCHECK_GT(v1, v2) ((void)0)
-#define DCHECK_GE(v1, v2) ((void)0)
-#define DCHECK_LT(v1, v2) ((void)0)
-#define DCHECK_LE(v1, v2) ((void)0)
-#define DCHECK_NULL(val) ((void)0)
-#define DCHECK_NOT_NULL(val) ((void)0)
-#define DCHECK_IMPLIES(v1, v2) ((void)0)
-#endif
-
-#endif
diff --git a/loader/dobby/external/logging/logging/cxxlogging.h b/loader/dobby/external/logging/logging/cxxlogging.h
deleted file mode 100644
index 1ccea1f1..00000000
--- a/loader/dobby/external/logging/logging/cxxlogging.h
+++ /dev/null
@@ -1,26 +0,0 @@
-#ifndef CXXLOGGING_H_
-#define CXXLOGGING_H_
-
-#include "logging.h"
-
-typedef enum {
-  LOG_LEVEL_FATAL = 0,
-  LOG_LEVEL_ERROR = 1,
-  LOG_LEVEL_WARNING = 2,
-  LOG_LEVEL_DEBUG = 3,
-  LOG_LEVEL_VERBOSE = 4
-} LogLevel;
-
-class Logger {
-public:
-  void setLogLevel(LogLevel level);
-
-  void log(LogLevel level, const char *tag, const char *fmt, ...);
-
-  void LogFatal(const char *fmt, ...);
-
-private:
-  LogLevel log_level_;
-};
-
-#endif
diff --git a/loader/dobby/external/logging/logging/logging.h b/loader/dobby/external/logging/logging/logging.h
deleted file mode 100644
index 031803cf..00000000
--- a/loader/dobby/external/logging/logging/logging.h
+++ /dev/null
@@ -1,90 +0,0 @@
-#ifndef LOGGING_H
-#define LOGGING_H
-
-#include <stdio.h>
-#include <stdlib.h>
-
-#include <errno.h> // strerror
-
-#define LOG_TAG NULL
-
-#if 1
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-void log_set_level(int level);
-
-void log_switch_to_syslog();
-
-void log_switch_to_file(const char *path);
-
-#if !defined(LOG_FUNCTION_IMPL)
-#define LOG_FUNCTION_IMPL log_internal_impl
-#endif
-int log_internal_impl(unsigned int level, const char *, ...);
-
-#if defined(LOGGING_DISABLE)
-#define LOG_FUNCTION_IMPL(...)
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-#else
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-#endif
-
-#define LOG(level, fmt, ...)                                                                                           \
-  do {                                                                                                                 \
-    if (LOG_TAG)                                                                                                       \
-      LOG_FUNCTION_IMPL(level, "[*] [%s] " fmt "\n", LOG_TAG, ##__VA_ARGS__);                                          \
-    else                                                                                                               \
-      LOG_FUNCTION_IMPL(level, "[*] " fmt "\n", ##__VA_ARGS__);                                                        \
-  } while (0)
-
-#define RAW_LOG(level, fmt, ...)                                                                                       \
-  do {                                                                                                                 \
-    LOG_FUNCTION_IMPL(level, fmt, ##__VA_ARGS__);                                                                      \
-  } while (0)
-
-#define FATAL(fmt, ...)                                                                                                \
-  do {                                                                                                                 \
-    RAW_LOG(-1, "[!] [%s:%d:%s]: \n", __FILE__, __LINE__, __func__);                                                   \
-    RAW_LOG(-1, "[!] " fmt "\n", ##__VA_ARGS__);                                                                       \
-    abort();                                                                                                           \
-  } while (0)
-
-#define ERROR_LOG(fmt, ...)                                                                                            \
-  do {                                                                                                                 \
-    RAW_LOG(-1, "[!] [%s:%d:%s]: \n", __FILE__, __LINE__, __func__);                                                   \
-    RAW_LOG(-1, "[!] " fmt "\n", ##__VA_ARGS__);                                                                       \
-  } while (0)
-
-#define ERROR_TRACE_LOG()                                                                                              \
-  do {                                                                                                                 \
-    RAW_LOG(-1, "[!] %s:%d:%s\n", __FILE__, __LINE__, __func__);                                                       \
-  } while (0)
-
-#define INVOKE_TRACE_LOG()                                                                                             \
-  do {                                                                                                                 \
-    RAW_LOG(-1, "[%s] %s:%d:%s\n", __TIME__, __FILE_NAME__, __LINE__, __func__);                                       \
-  } while (0)
-
-
-#if defined(LOGGING_DEBUG)
-#define DLOG(level, fmt, ...) LOG(level, fmt, ##__VA_ARGS__)
-#else
-#define DLOG(level, fmt, ...)
-#endif
-
-#define UNIMPLEMENTED() FATAL("%s\n", "unimplemented code!!!")
-#define UNREACHABLE() FATAL("%s\n", "unreachable code!!!")
-
-#endif
diff --git a/loader/dobby/external/misc-helper/CMakeLists.txt b/loader/dobby/external/misc-helper/CMakeLists.txt
deleted file mode 100644
index de66e962..00000000
--- a/loader/dobby/external/misc-helper/CMakeLists.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-include_directories(.)
-
-set(SOURCE_FILE_LIST
-  # memory cache database
-  ${CMAKE_CURRENT_SOURCE_DIR}/variable_cache.c
-
-  # async logger
-  ${CMAKE_CURRENT_SOURCE_DIR}/async_logger.cc
-
-  ${CMAKE_CURRENT_SOURCE_DIR}/pthread_helper.cc
-)
-
-add_library(misc_helper STATIC
-  ${SOURCE_FILE_LIST}
-  ${SOURCE_HEADER_LIST}
-)
\ No newline at end of file
diff --git a/loader/dobby/external/misc-helper/async_logger.cc b/loader/dobby/external/misc-helper/async_logger.cc
deleted file mode 100644
index 4aa9fda9..00000000
--- a/loader/dobby/external/misc-helper/async_logger.cc
+++ /dev/null
@@ -1,65 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "pthread_helper.h"
-#include "unistd_helper.h"
-
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-
-#define aync_logger_buffer_size (20 * 1024 * 1024)
-int async_logger_buffer_cursor = 0;
-char async_logger_buffer[aync_logger_buffer_size];
-
-static pthread_mutex_t async_logger_mutex;
-
-static int output_fd = -1;
-
-void async_logger_print(char *str) {
-  pthread_mutex_lock(&async_logger_mutex);
-#if 0
-  {
-    write(STDOUT_FILENO, str, strlen(str) + 1);
-  }
-#endif
-  memcpy(async_logger_buffer + async_logger_buffer_cursor, str, strlen(str));
-  async_logger_buffer_cursor += strlen(str);
-  pthread_mutex_unlock(&async_logger_mutex);
-  return;
-}
-
-static void *async_logger_print_impl(void *ctx) {
-  while (1) {
-    pthread_mutex_lock(&async_logger_mutex);
-    if (async_logger_buffer_cursor > 0) {
-      write(output_fd, async_logger_buffer, async_logger_buffer_cursor);
-      async_logger_buffer_cursor = 0;
-    }
-    pthread_mutex_unlock(&async_logger_mutex);
-    sleep(1);
-  }
-}
-
-void async_logger_init(char *logger_path) {
-  static int async_logger_initialized = 0;
-  if (async_logger_initialized)
-    return;
-  async_logger_initialized = 1;
-
-  // init stdout write lock
-  pthread_mutex_t write_mutex;
-  pthread_mutex_init(&write_mutex, NULL);
-
-  output_fd = STDOUT_FILENO;
-  if (logger_path) {
-    int fd = open(logger_path, O_CREAT | O_WRONLY | O_TRUNC, 0644);
-    output_fd = fd;
-  }
-
-  // init async logger
-  pthread_mutex_init(&async_logger_mutex, NULL);
-  pthread_t async_logger_thread;
-  int ret = pthread_create(&async_logger_thread, NULL, async_logger_print_impl, NULL);
-}
diff --git a/loader/dobby/external/misc-helper/misc-helper/async_logger.h b/loader/dobby/external/misc-helper/misc-helper/async_logger.h
deleted file mode 100644
index 03e0d4e1..00000000
--- a/loader/dobby/external/misc-helper/misc-helper/async_logger.h
+++ /dev/null
@@ -1,8 +0,0 @@
-#ifndef ASYNC_LOGGER_H
-#define ASYNC_LOGGER_H
-
-void async_logger_print(char *str);
-
-void async_logger_init(char *logger_path);
-
-#endif
\ No newline at end of file
diff --git a/loader/dobby/external/misc-helper/misc-helper/variable_cache.h b/loader/dobby/external/misc-helper/misc-helper/variable_cache.h
deleted file mode 100644
index ca3a1fa8..00000000
--- a/loader/dobby/external/misc-helper/misc-helper/variable_cache.h
+++ /dev/null
@@ -1,18 +0,0 @@
-#ifndef VARIABLE_CACHE_H
-#define VARIABLE_CACHE_H
-
-#include <stdint.h>
-#include <assert.h>
-
-#define cache_set stash
-void cache_set(const char *name, uint64_t value);
-
-#define cache_get(x) cache(x)
-#define assert_cache(x) (assert(cache(x)), cache(x))
-uint64_t cache_get(const char *name);
-
-int serialized_to_file(const char *filepath);
-
-int unserialized_from_file(const char *filepath);
-
-#endif
diff --git a/loader/dobby/external/misc-helper/pthread_helper.cc b/loader/dobby/external/misc-helper/pthread_helper.cc
deleted file mode 100644
index a539fc1d..00000000
--- a/loader/dobby/external/misc-helper/pthread_helper.cc
+++ /dev/null
@@ -1,147 +0,0 @@
-#include "pthread_helper.h"
-#include <stdio.h>
-#ifdef _WIN32
-
-typedef void (*windows_thread)(void *);
-
-int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void
-				   *(*start_routine)(void *), void *arg)
-{
-	uintptr_t handle = _beginthread((windows_thread)start_routine,0,arg);
-	thread->handle = (HANDLE)handle;
-	if(thread->handle == (HANDLE)-1){
-		return 1;
-	}else{
-		return 0;
-	}
-}
-
-int pthread_detach(pthread_t thread)
-{
-	/* Do nothing */
-	return 0;
-}
-
-void pthread_exit(void *value_ptr)
-{
-	_endthread();
-}
-
-int pthread_join(pthread_t thread, void **value_ptr)
-{
-	DWORD retvalue = WaitForSingleObject(thread.handle,INFINITE);
-	if(retvalue == WAIT_OBJECT_0){
-		return 0;
-	}else{
-		return EINVAL;
-	}
-}
-
-pthread_t pthread_self(void)
-{
-	pthread_t pt;
-	pt.handle = GetCurrentThread();
-	return pt;
-}
-
-int pthread_cancel(pthread_t thread)
-{
-	fprintf(stderr,"DO NOT USE THIS FUNCTION. pthread_cancel\n");
-	abort();
-	return 0;
-}
-
-/* --------------------- MUTEX --------------------*/
-
-int pthread_mutexattr_destroy(pthread_mutexattr_t *attr)
-{
-	/* do nothing */
-	return 0;
-}
-
-int pthread_mutexattr_init(pthread_mutexattr_t *attr)
-{
-	/* do nothing */
-	return 0;
-}
-
-int pthread_mutex_destroy(pthread_mutex_t *mutex)
-{
-	return !CloseHandle(mutex->handle);
-}
-
-int pthread_mutex_init(pthread_mutex_t *mutex, const pthread_mutexattr_t *attr)
-{
-	HANDLE handle = CreateMutex(NULL,FALSE,NULL);
-	if(handle != NULL){
-		mutex->handle = handle;
-		return 0;
-	}else{
-		return 1;
-	}
-}
-
-int pthread_mutex_lock(pthread_mutex_t *mutex)
-{
-	DWORD retvalue = WaitForSingleObject(mutex->handle,INFINITE);
-	if(retvalue == WAIT_OBJECT_0){
-		return 0;
-	}else{
-		return EINVAL;
-	}
-}
-
-int pthread_mutex_trylock(pthread_mutex_t *mutex)
-{
-	DWORD retvalue = WaitForSingleObject(mutex->handle,0);
-	if(retvalue == WAIT_OBJECT_0){
-		return 0;
-	}else if(retvalue == WAIT_TIMEOUT){
-		return EBUSY;
-	}else{
-		return EINVAL;
-	}
-}
-
-int pthread_mutex_unlock(pthread_mutex_t *mutex)
-{
-	return !ReleaseMutex(mutex->handle);
-}
-
-/* ------------------- Thead Specific Data ------------------ */
-
-int pthread_key_create(pthread_key_t *key, void (*destr_function) (void *))
-{
-	DWORD dkey = TlsAlloc();
-	if(dkey != 0xFFFFFFFF){
-		*key = dkey;
-		return 0;
-	}else{
-		return EAGAIN;
-	}
-}
-
-int pthread_key_delete(pthread_key_t key)
-{
-	if(TlsFree(key)){
-		return 0;
-	}else{
-		return EINVAL;
-	}
-}
-
-int pthread_setspecific(pthread_key_t key, const void *pointer)
-{
-	if(TlsSetValue(key,(LPVOID)pointer)){
-		return 0;
-	}else{
-		return EINVAL;
-	}
-}
-
-void * pthread_getspecific(pthread_key_t key)
-{
-	return TlsGetValue(key);
-}
-
-#endif
\ No newline at end of file
diff --git a/loader/dobby/external/misc-helper/pthread_helper.h b/loader/dobby/external/misc-helper/pthread_helper.h
deleted file mode 100644
index 2a19b697..00000000
--- a/loader/dobby/external/misc-helper/pthread_helper.h
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * light weight pthread compatible library for Windows
- * (C) 2009 Okamura Yasunobu
- *
- *    WARNING This library does NOT support all future of pthread
- *
- */
-
-#ifndef CROSS_THREAD_H
-#define CROSS_THREAD_H
-
-#ifdef _WIN32
-
-#ifdef __cplusplus
-extern "C" {
-#endif	
-
-#include <windows.h>
-#include <process.h>
-#include <errno.h>
-
-typedef struct pthread_tag {
-    HANDLE handle;
-} pthread_t;
-
-typedef struct pthread_mutex_tag {
-    HANDLE handle;
-} pthread_mutex_t;
-
-/* stub */
-typedef struct pthread_attr_tag {
-    int attr;
-} pthread_attr_t;
-
-typedef struct pthread_mutexattr_tag {
-    int attr;
-} pthread_mutexattr_t;
-
-typedef DWORD pthread_key_t;
-
-/* ignore attribute */
-int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void
-		   *(*start_routine)(void *), void *arg);
-
-/* ignore value_ptr */
-void pthread_exit(void *value_ptr);
-
-/* ignore value_ptr */
-int pthread_join(pthread_t thread, void **value_ptr);
-
-pthread_t pthread_self(void);
-
-/* do nothing */
-int pthread_detach(pthread_t thread);
-
-/* DO NOT USE */
-int pthread_cancel(pthread_t thread);
-
-int pthread_mutexattr_destroy(pthread_mutexattr_t *attr); /* do nothing */
-int pthread_mutexattr_init(pthread_mutexattr_t *attr); /* do nothing */
-
-int pthread_mutex_destroy(pthread_mutex_t *mutex);
-int pthread_mutex_init(pthread_mutex_t *mutex, const pthread_mutexattr_t *attr);
-int pthread_mutex_lock(pthread_mutex_t *mutex);
-int pthread_mutex_trylock(pthread_mutex_t *mutex);
-int pthread_mutex_unlock(pthread_mutex_t *mutex);
-
-/* ignore deconstructor */
-int pthread_key_create(pthread_key_t *key, void (*destr_function) (void *));
-int pthread_key_delete(pthread_key_t key);
-int pthread_setspecific(pthread_key_t key, const void *pointer);
-void * pthread_getspecific(pthread_key_t key);
-
-#define sleep(num) Sleep(1000*(num))
-
-#ifdef __cplusplus
-}
-#endif
-
-#else
-#include <pthread.h>
-#include <unistd.h>
-#define Sleep(num) usleep(num*1000)
-#endif
-
-#endif /* CROSS_THREAD_H */
diff --git a/loader/dobby/external/misc-helper/unistd_helper.h b/loader/dobby/external/misc-helper/unistd_helper.h
deleted file mode 100644
index eee45095..00000000
--- a/loader/dobby/external/misc-helper/unistd_helper.h
+++ /dev/null
@@ -1,32 +0,0 @@
-#ifdef _WIN32
-
-#include <io.h>
-#define open _open
-#define read _read
-#define O_RDONLY _O_RDONLY
-#define O_WRONLY _O_WRONLY
-#define O_CREAT _O_CREAT
-#define O_TRUNC _O_TRUNC
-
-
-
-#define ssize_t int
-
-#define STDIN_FILENO 0
-#define STDOUT_FILENO 1
-#define STDERR_FILENO 2
-/* should be in some equivalent to <sys/types.h> */
-typedef __int8            int8_t;
-typedef __int16           int16_t; 
-typedef __int32           int32_t;
-typedef __int64           int64_t;
-typedef unsigned __int8   uint8_t;
-typedef unsigned __int16  uint16_t;
-typedef unsigned __int32  uint32_t;
-typedef unsigned __int64  uint64_t;
-
-#else
-
-#include <unistd.h>
-
-#endif
\ No newline at end of file
diff --git a/loader/dobby/external/misc-helper/variable_cache.c b/loader/dobby/external/misc-helper/variable_cache.c
deleted file mode 100644
index 2e88a736..00000000
--- a/loader/dobby/external/misc-helper/variable_cache.c
+++ /dev/null
@@ -1,118 +0,0 @@
-#include "misc-helper/variable_cache.h"
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <fcntl.h>
-#include "unistd_helper.h"
-
-#include <errno.h>
-
-typedef struct queue_entry_t {
-  struct queue_entry *next;
-  struct queue_entry *prev;
-} queue_entry_t;
-
-/* TODO: add a property or attribute indicate not serialized */
-typedef struct var_entry_t {
-  queue_entry_t entry_;
-  char key[128];
-  uint64_t value;
-} var_entry_t;
-
-var_entry_t *root = NULL;
-
-static var_entry_t *cache_get_entry_internal(const char *name) {
-  var_entry_t *entry;
-  entry = root;
-  while (entry != NULL) {
-    if (strcmp(name, entry->key) == 0) {
-      return entry;
-    }
-    entry = (var_entry_t *)entry->entry_.next;
-  }
-  return NULL;
-}
-
-void cache_set(const char *name, uint64_t value) {
-  var_entry_t *entry = cache_get_entry_internal(name);
-  if (entry) {
-    entry->value = value;
-    return;
-  }
-
-  entry = (var_entry_t *)malloc(sizeof(var_entry_t));
-  strcpy(entry->key, name);
-  entry->value = value;
-
-  entry->entry_.next = (struct queue_entry *)root;
-  root = entry;
-}
-
-uint64_t cache_get(const char *name) {
-  var_entry_t *entry = cache_get_entry_internal(name);
-  if (entry) {
-    return entry->value;
-  }
-  return 0;
-}
-
-typedef struct entry_block {
-  int key_length;
-  int value_length;
-} entry_block_t;
-
-int serialized_to_file(const char *filepath) {
-  int fd = open(filepath, O_WRONLY | O_CREAT | O_TRUNC, 0660);
-  if (fd == -1) {
-    printf("open %s failed: %s\n", filepath, strerror(errno));
-    return -1;
-  }
-
-  var_entry_t *entry;
-  entry = root;
-  while (entry != NULL) {
-    entry_block_t block = {0};
-    {
-      block.key_length = strlen(entry->key) + 1;
-      block.value_length = sizeof(uint64_t);
-      write(fd, &block, sizeof(block));
-    }
-
-    write(fd, entry->key, block.key_length);
-    write(fd, &entry->value, block.value_length);
-
-    entry = (var_entry_t *)entry->entry_.next;
-  }
-  close(fd);
-  return 0;
-}
-
-int unserialized_from_file(const char *filepath) {
-  int fd = open(filepath, O_RDONLY);
-  if (fd == -1) {
-    printf("open %s failed: %s\n", filepath, strerror(errno));
-    return -1;
-  }
-
-  entry_block_t block = {0};
-  while (read(fd, &block, sizeof(block)) > 0) {
-    char key[128] = {0};
-    uint64_t value = 0;
-
-    read(fd, (void *)&key, block.key_length);
-    read(fd, (void *)&value, block.value_length);
-
-    {
-      var_entry_t *entry = (var_entry_t *)malloc(sizeof(var_entry_t));
-      strcpy(entry->key, key);
-      entry->value = value;
-
-      entry->entry_.next = (struct queue_entry *)root;
-      root = entry;
-    }
-  }
-
-  return 0;
-}
diff --git a/loader/dobby/external/xnucxx/CMakeLists.txt b/loader/dobby/external/xnucxx/CMakeLists.txt
deleted file mode 100644
index e6031df6..00000000
--- a/loader/dobby/external/xnucxx/CMakeLists.txt
+++ /dev/null
@@ -1,19 +0,0 @@
-
-include_directories(.)
-
-if(KERNELMODE)
-   add_definitions(-DKERNELMODE)
-endif()
-
-set(xnucxx.SOURCE_FILE_LIST
-  ${CMAKE_CURRENT_SOURCE_DIR}/LiteMemOpt.cc
-  ${CMAKE_CURRENT_SOURCE_DIR}/LiteObject.cc
-  ${CMAKE_CURRENT_SOURCE_DIR}/LiteIterator.cc
-  ${CMAKE_CURRENT_SOURCE_DIR}/LiteCollection.cc
-  ${CMAKE_CURRENT_SOURCE_DIR}/LiteMutableBuffer.cc
-  ${CMAKE_CURRENT_SOURCE_DIR}/LiteMutableArray.cc
-)
-
-add_library(xnucxx STATIC
-  ${xnucxx.SOURCE_FILE_LIST}
-)
\ No newline at end of file
diff --git a/loader/dobby/external/xnucxx/LiteCollection.cc b/loader/dobby/external/xnucxx/LiteCollection.cc
deleted file mode 100644
index 8890d976..00000000
--- a/loader/dobby/external/xnucxx/LiteCollection.cc
+++ /dev/null
@@ -1 +0,0 @@
-#include "xnucxx/LiteCollection.h"
diff --git a/loader/dobby/external/xnucxx/LiteIterator.cc b/loader/dobby/external/xnucxx/LiteIterator.cc
deleted file mode 100644
index 2df5b41c..00000000
--- a/loader/dobby/external/xnucxx/LiteIterator.cc
+++ /dev/null
@@ -1,31 +0,0 @@
-#include "xnucxx/LiteIterator.h"
-#include "xnucxx/LiteCollection.h"
-#include "xnucxx/LiteMemOpt.h"
-
-void LiteCollectionIterator::reset() {
-  collection->initIterator(innerIterator);
-}
-
-bool LiteCollectionIterator::initWithCollection(const LiteCollectionInterface *inCollection) {
-  int *ndxPtr = (int *)LiteMemOpt::alloc(sizeof(int));
-  innerIterator = (void *)ndxPtr;
-
-  inCollection->initIterator(this->innerIterator);
-  collection = inCollection;
-
-  return true;
-}
-
-LiteObject *LiteCollectionIterator::getNextObject() {
-  LiteObject *retObj;
-  collection->getNextObjectForIterator(this->innerIterator, &retObj);
-  return retObj;
-}
-
-void LiteCollectionIterator::release() {
-  if (innerIterator) {
-    LiteMemOpt::free(innerIterator, sizeof(int));
-
-    innerIterator = NULL;
-  }
-}
diff --git a/loader/dobby/external/xnucxx/LiteMemOpt.cc b/loader/dobby/external/xnucxx/LiteMemOpt.cc
deleted file mode 100644
index f3cb5674..00000000
--- a/loader/dobby/external/xnucxx/LiteMemOpt.cc
+++ /dev/null
@@ -1,22 +0,0 @@
-#include "xnucxx/LiteMemOpt.h"
-#include <stdlib.h>
-#include <string.h>
-
-#if 1
-void *_memcpy(void *dest, const void *src, int len) {
-  return memcpy(dest, src, len);
-}
-
-void *_memset(void *dest, int ch, int count) {
-  return memset(dest, ch, count);
-}
-#endif
-
-void *LiteMemOpt::alloc(int size) {
-  void *result = malloc(size);
-  return result;
-}
-
-void LiteMemOpt::free(void *address, int size) {
-  return ::free(address);
-}
diff --git a/loader/dobby/external/xnucxx/LiteMutableArray.cc b/loader/dobby/external/xnucxx/LiteMutableArray.cc
deleted file mode 100644
index 6459a5fc..00000000
--- a/loader/dobby/external/xnucxx/LiteMutableArray.cc
+++ /dev/null
@@ -1,101 +0,0 @@
-#include "xnucxx/LiteMutableArray.h"
-#include "xnucxx/LiteMemOpt.h"
-
-LiteMutableArray::LiteMutableArray(int initCapacity) {
-  unsigned int arraySize = 0;
-  arraySize = initCapacity * sizeof(LiteObject *);
-  array = (const LiteObject **)LiteMemOpt::alloc(arraySize);
-  array_count = 0;
-  array_capacity = initCapacity;
-}
-
-LiteMutableArray::~LiteMutableArray() {
-  release();
-}
-
-LiteObject *LiteMutableArray::getObject(const unsigned int index) {
-  return (LiteObject *)array[index];
-}
-
-bool LiteMutableArray::pushObject(const LiteObject *object) {
-  unsigned int newCount = array_count + 1;
-  if (newCount > array_capacity && newCount > ensureCapacity(newCount))
-    return false;
-
-  array[array_count] = object;
-  array_count++;
-  return true;
-}
-
-unsigned int LiteMutableArray::getCount() {
-  return array_count;
-}
-
-unsigned int LiteMutableArray::getCapacity() {
-  return array_capacity;
-}
-
-unsigned int LiteMutableArray::ensureCapacity(unsigned int newCapacity) {
-  if (newCapacity <= array_capacity)
-    return array_capacity;
-
-#define CAPACITY_STEP 64
-  newCapacity = (int)ALIGN(newCapacity + CAPACITY_STEP, CAPACITY_STEP);
-
-  // alloc new buffer
-  int newSize;
-  const LiteObject **newArray;
-  newSize = sizeof(LiteObject *) * newCapacity;
-  newArray = (const LiteObject **)LiteMemOpt::alloc(newSize);
-  if (newArray == nullptr) {
-    return 0;
-  }
-
-  // clear buffer content
-  _memset(newArray, 'A', newSize);
-
-  // copy the origin content
-  int originContentSize = sizeof(LiteObject *) * array_count;
-  _memcpy(newArray, array, originContentSize);
-
-  // free the origin
-  int originArraySize = array_capacity * sizeof(LiteObject *);
-  LiteMemOpt::free(array, originArraySize);
-
-  // update info
-  this->array = newArray;
-  this->array_capacity = newCapacity;
-
-  return newCapacity;
-}
-
-// impl iterator delegate
-bool LiteMutableArray::initIterator(void *iterator) const {
-  unsigned int *ndxPtr = (unsigned int *)iterator;
-  *ndxPtr = 0;
-  return true;
-}
-
-// impl iterator delegate
-bool LiteMutableArray::getNextObjectForIterator(void *iterator, LiteObject **ret) const {
-  unsigned int *ndxPtr = (unsigned int *)iterator;
-  unsigned int ndx = (*ndxPtr)++;
-
-  if (ndx < array_count) {
-    *ret = (LiteObject *)array[ndx];
-    return true;
-  } else {
-    *ret = nullptr;
-    return false;
-  }
-}
-
-void LiteMutableArray::release() {
-  if (array != NULL) {
-    unsigned int arraySize = 0;
-    arraySize = array_capacity * sizeof(LiteObject *);
-    LiteMemOpt::free(array, arraySize);
-
-    array = NULL;
-  }
-}
\ No newline at end of file
diff --git a/loader/dobby/external/xnucxx/LiteMutableBuffer.cc b/loader/dobby/external/xnucxx/LiteMutableBuffer.cc
deleted file mode 100644
index 5d0246f6..00000000
--- a/loader/dobby/external/xnucxx/LiteMutableBuffer.cc
+++ /dev/null
@@ -1,54 +0,0 @@
-#include "xnucxx/LiteMutableBuffer.h"
-#include "xnucxx/LiteMemOpt.h"
-
-bool LiteMutableBuffer::initWithCapacity(uint32_t initCapacity) {
-  if (initCapacity <= 0)
-    return false;
-
-  this->buffer = (uint8_t *)LiteMemOpt::alloc(initCapacity);
-  this->buffer_cursor = buffer;
-  this->buffer_capacity = initCapacity;
-  return true;
-}
-
-uint32_t LiteMutableBuffer::ensureCapacity(uint32_t newCapacity) {
-  if (newCapacity <= buffer_capacity)
-    return buffer_capacity;
-
-  // or use step
-  newCapacity = newCapacity + (uint32_t)newCapacity / 2;
-
-  // alloc new buffer
-  uint8_t *newBuffer;
-  newBuffer = (uint8_t *)LiteMemOpt::alloc(newCapacity);
-  if (newBuffer == nullptr) {
-    return 0;
-  }
-
-  // clear buffer content
-  _memset(newBuffer, 'A', newCapacity);
-
-  // copy the origin content
-  uint32_t originContentSize = (uint32_t)(buffer_cursor - buffer);
-  _memcpy(newBuffer, buffer, originContentSize);
-
-  // free the origin
-  uint32_t originBufferSize = buffer_capacity;
-  LiteMemOpt::free(buffer, originBufferSize);
-
-  // update info
-  this->buffer = newBuffer;
-  this->buffer_cursor = newBuffer + originContentSize;
-  this->buffer_capacity = newCapacity;
-
-  return newCapacity;
-}
-
-void LiteMutableBuffer::release() {
-  if (buffer != NULL) {
-    uint32_t originBufferSize = buffer_capacity;
-    LiteMemOpt::free(buffer, originBufferSize);
-
-    buffer = NULL;
-  }
-}
\ No newline at end of file
diff --git a/loader/dobby/external/xnucxx/LiteObject.cc b/loader/dobby/external/xnucxx/LiteObject.cc
deleted file mode 100644
index f8d9b8fa..00000000
--- a/loader/dobby/external/xnucxx/LiteObject.cc
+++ /dev/null
@@ -1,9 +0,0 @@
-#include "xnucxx/LiteObject.h"
-
-void LiteObject::free() {
-  return;
-}
-
-void LiteObject::release() {
-  return;
-}
\ No newline at end of file
diff --git a/loader/dobby/external/xnucxx/xnucxx/LiteCollection.h b/loader/dobby/external/xnucxx/xnucxx/LiteCollection.h
deleted file mode 100644
index 2c29331b..00000000
--- a/loader/dobby/external/xnucxx/xnucxx/LiteCollection.h
+++ /dev/null
@@ -1,20 +0,0 @@
-#ifndef LITE_COLLECTION_H
-#define LITE_COLLECTION_H
-
-#include "xnucxx/LiteObject.h"
-#include "xnucxx/LiteIterator.h"
-
-class LiteCollectionInterface : public LiteObject, public LiteIteratorInterface::Delegate {
-public:
-  virtual unsigned int getCount() = 0;
-
-  virtual unsigned int getCapacity() = 0;
-
-  virtual unsigned int ensureCapacity(unsigned int newCapacity) = 0;
-
-  virtual bool initIterator(void *iterator) const = 0;
-
-  virtual bool getNextObjectForIterator(void *iterator, LiteObject **ret) const = 0;
-};
-
-#endif
\ No newline at end of file
diff --git a/loader/dobby/external/xnucxx/xnucxx/LiteIterator.h b/loader/dobby/external/xnucxx/xnucxx/LiteIterator.h
deleted file mode 100644
index 60586b99..00000000
--- a/loader/dobby/external/xnucxx/xnucxx/LiteIterator.h
+++ /dev/null
@@ -1,48 +0,0 @@
-#ifndef LITE_ITERATOR_H
-#define LITE_ITERATOR_H
-
-#include "xnucxx/LiteObject.h"
-
-class LiteIteratorInterface : public LiteObject {
-public:
-  class Delegate {
-  public:
-    virtual bool initIterator(void *iterationContext) const = 0;
-
-    virtual bool getNextObjectForIterator(void *iterationContext, LiteObject **nextObject) const = 0;
-  };
-
-public:
-  virtual void reset() = 0;
-
-  virtual LiteObject *getNextObject() = 0;
-};
-
-class LiteCollectionInterface;
-class LiteCollectionIterator : public LiteIteratorInterface {
-protected:
-  const LiteCollectionInterface *collection;
-
-  void *innerIterator;
-
-public:
-  explicit LiteCollectionIterator(const LiteCollectionInterface *collection) {
-    initWithCollection(collection);
-  }
-
-  ~LiteCollectionIterator() {
-    release();
-  }
-
-  // === LiteObject override ===
-  void release() override;
-
-  // === LiteIteratorInterface override ===
-  void reset() override;
-
-  LiteObject *getNextObject() override;
-
-  bool initWithCollection(const LiteCollectionInterface *collection);
-};
-
-#endif
diff --git a/loader/dobby/external/xnucxx/xnucxx/LiteMemOpt.h b/loader/dobby/external/xnucxx/xnucxx/LiteMemOpt.h
deleted file mode 100644
index 7e3eddc1..00000000
--- a/loader/dobby/external/xnucxx/xnucxx/LiteMemOpt.h
+++ /dev/null
@@ -1,17 +0,0 @@
-#ifndef LITE_MEM_OPT_H
-#define LITE_MEM_OPT_H
-
-extern void *_memcpy(void *, const void *, int);
-
-extern void _bzero(void *, int);
-
-extern void *_memset(void *, int, int);
-
-class LiteMemOpt {
-public:
-  static void *alloc(int size);
-
-  static void free(void *address, int size);
-};
-
-#endif
diff --git a/loader/dobby/external/xnucxx/xnucxx/LiteMutableArray.h b/loader/dobby/external/xnucxx/xnucxx/LiteMutableArray.h
deleted file mode 100644
index e315b2c0..00000000
--- a/loader/dobby/external/xnucxx/xnucxx/LiteMutableArray.h
+++ /dev/null
@@ -1,40 +0,0 @@
-#ifndef LITE_MUTABLE_ARRAY_H
-#define LITE_MUTABLE_ARRAY_H
-
-#include "xnucxx/LiteCollection.h"
-#include "xnucxx/LiteIterator.h"
-
-class LiteMutableArray : public LiteCollectionInterface {
-protected:
-  const LiteObject **array;
-
-  unsigned int array_count;
-
-  unsigned int array_capacity;
-
-public:
-  explicit LiteMutableArray(int count);
-
-  ~LiteMutableArray();
-
-  // === LiteObject override ==
-  void release() override;
-
-  // === LiteCollectionInterface override ==
-  unsigned int getCount() override;
-
-  unsigned int getCapacity() override;
-
-  unsigned int ensureCapacity(unsigned int newCapacity) override;
-
-  // === LiteIteratorInterface::Delegate override ==
-  bool initIterator(void *iterator) const override;
-
-  bool getNextObjectForIterator(void *iterator, LiteObject **ret) const override;
-
-  virtual LiteObject *getObject(unsigned int index);
-
-  virtual bool pushObject(const LiteObject *object);
-};
-
-#endif
diff --git a/loader/dobby/external/xnucxx/xnucxx/LiteMutableBuffer.h b/loader/dobby/external/xnucxx/xnucxx/LiteMutableBuffer.h
deleted file mode 100644
index 8afb6a42..00000000
--- a/loader/dobby/external/xnucxx/xnucxx/LiteMutableBuffer.h
+++ /dev/null
@@ -1,51 +0,0 @@
-#ifndef LITE_MUTABLE_BUFFER_H
-#define LITE_MUTABLE_BUFFER_H
-
-#include "xnucxx/LiteObject.h"
-
-class LiteMutableBuffer : public LiteObject {
-protected:
-  uint8_t *buffer;
-
-  uint8_t *buffer_cursor;
-
-  uint32_t buffer_capacity;
-
-public:
-  LiteMutableBuffer() {
-    initWithCapacity(8);
-  }
-
-  LiteMutableBuffer(uint32_t size) {
-    initWithCapacity(size);
-  }
-
-  ~LiteMutableBuffer() {
-    release();
-  }
-
-  // === LiteObject override ==
-  void release() override;
-
-  virtual bool initWithCapacity(uint32_t initCapacity);
-
-  virtual uint32_t ensureCapacity(uint32_t newCapacity);
-
-  virtual inline uint32_t getSize() {
-    return (uint32_t)(buffer_cursor - buffer);
-  }
-
-  virtual inline uint32_t getCapacity() {
-    return buffer_capacity;
-  }
-
-  virtual inline void *getCursor() {
-    return buffer_cursor;
-  }
-
-  virtual inline void *getRawBuffer() {
-    return buffer;
-  }
-};
-
-#endif
diff --git a/loader/dobby/external/xnucxx/xnucxx/LiteObject.h b/loader/dobby/external/xnucxx/xnucxx/LiteObject.h
deleted file mode 100644
index a4c0f208..00000000
--- a/loader/dobby/external/xnucxx/xnucxx/LiteObject.h
+++ /dev/null
@@ -1,13 +0,0 @@
-#ifndef LITE_OBJECT_H
-#define LITE_OBJECT_H
-
-#include "common_header.h"
-
-class LiteObject {
-public:
-  virtual void free();
-
-  virtual void release();
-};
-
-#endif
diff --git a/loader/dobby/include/dobby.h b/loader/dobby/include/dobby.h
deleted file mode 100644
index bc4c96b7..00000000
--- a/loader/dobby/include/dobby.h
+++ /dev/null
@@ -1,190 +0,0 @@
-#ifndef dobby_h
-#define dobby_h
-
-// obfuscated interface
-#if 0
-#define DobbyBuildVersion c343f74888dffad84d9ad08d9c433456
-#define DobbyHook c8dc3ffa44f22dbd10ccae213dd8b1f8
-#define DobbyInstrument b71e27bca2c362de90c1034f19d839f9
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <stdbool.h>
-#include <stdint.h>
-
-void log_set_level(int level);
-void log_switch_to_syslog();
-void log_switch_to_file(const char *path);
-
-typedef enum {
-  kMemoryOperationSuccess,
-  kMemoryOperationError,
-  kNotSupportAllocateExecutableMemory,
-  kNotEnough,
-  kNone
-} MemoryOperationError;
-
-#define PLATFORM_INTERFACE_CODE_PATCH_TOOL_H
-MemoryOperationError CodePatch(void *address, uint8_t *buffer, uint32_t buffer_size);
-
-typedef uintptr_t addr_t;
-typedef uint32_t addr32_t;
-typedef uint64_t addr64_t;
-
-#if defined(__arm64__) || defined(__aarch64__)
-
-#define ARM64_TMP_REG_NDX_0 17
-
-// float register
-typedef union _FPReg {
-  __int128_t q;
-  struct {
-    double d1;
-    double d2;
-  } d;
-  struct {
-    float f1;
-    float f2;
-    float f3;
-    float f4;
-  } f;
-} FPReg;
-
-// register context
-typedef struct _RegisterContext {
-  uint64_t dmmpy_0; // dummy placeholder
-  uint64_t sp;
-
-  uint64_t dmmpy_1; // dummy placeholder
-  union {
-    uint64_t x[29];
-    struct {
-      uint64_t x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22,
-          x23, x24, x25, x26, x27, x28;
-    } regs;
-  } general;
-
-  uint64_t fp;
-  uint64_t lr;
-
-  union {
-    FPReg q[32];
-    struct {
-      FPReg q0, q1, q2, q3, q4, q5, q6, q7;
-      // [!!! READ ME !!!]
-      // for Arm64, can't access q8 - q31, unless you enable full floating-point register pack
-      FPReg q8, q9, q10, q11, q12, q13, q14, q15, q16, q17, q18, q19, q20, q21, q22, q23, q24, q25, q26, q27, q28, q29,
-          q30, q31;
-    } regs;
-  } floating;
-} RegisterContext;
-#elif defined(__arm__)
-typedef struct _RegisterContext {
-  uint32_t dummy_0;
-  uint32_t dummy_1;
-
-  uint32_t dummy_2;
-  uint32_t sp;
-
-  union {
-    uint32_t r[13];
-    struct {
-      uint32_t r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12;
-    } regs;
-  } general;
-
-  uint32_t lr;
-} RegisterContext;
-#elif defined(_M_IX86) || defined(__i386__)
-typedef struct _RegisterContext {
-  uint32_t dummy_0;
-  uint32_t esp;
-
-  uint32_t dummy_1;
-  uint32_t flags;
-
-  union {
-    struct {
-      uint32_t eax, ebx, ecx, edx, ebp, esp, edi, esi;
-    } regs;
-  } general;
-
-} RegisterContext;
-#elif defined(_M_X64) || defined(__x86_64__)
-typedef struct _RegisterContext {
-  uint64_t dummy_0;
-  uint64_t rsp;
-
-  union {
-    struct {
-      uint64_t rax, rbx, rcx, rdx, rbp, rsp, rdi, rsi, r8, r9, r10, r11, r12, r13, r14, r15;
-    } regs;
-  } general;
-
-  uint64_t dummy_1;
-  uint64_t flags;
-} RegisterContext;
-#endif
-
-#define RT_FAILED -1
-#define RT_SUCCESS 0
-typedef enum _RetStatus { RS_FAILED = -1, RS_SUCCESS = 0 } RetStatus;
-
-typedef struct _HookEntryInfo {
-  int hook_id;
-  union {
-    void *target_address;
-    void *function_address;
-    void *instruction_address;
-  };
-} HookEntryInfo;
-
-// DobbyWrap <==> DobbyInstrument, so use DobbyInstrument instead of DobbyWrap
-#if 0
-// wrap function with pre_call and post_call
-typedef void (*PreCallTy)(RegisterContext *ctx, const HookEntryInfo *info);
-typedef void (*PostCallTy)(RegisterContext *ctx, const HookEntryInfo *info);
-int DobbyWrap(void *function_address, PreCallTy pre_call, PostCallTy post_call);
-#endif
-
-// return dobby build date
-const char *DobbyBuildVersion();
-
-// replace function
-int DobbyHook(void *address, void *replace_call, void **origin_call);
-
-// dynamic binary instrument for instruction
-// [!!! READ ME !!!]
-// for Arm64, can't access q8 - q31, unless you enable full floating-point register pack
-typedef void (*DBICallTy)(RegisterContext *ctx, const HookEntryInfo *info);
-int DobbyInstrument(void *address, DBICallTy dbi_call);
-
-// destory and restore hook
-int DobbyDestroy(void *address);
-
-// iterate symbol table and find symbol
-void *DobbySymbolResolver(const char *image_name, const char *symbol_name);
-
-// global offset table
-int DobbyGlobalOffsetTableReplace(char *image_name, char *symbol_name, void *fake_func, void **orig_func);
-
-// [!!! READ ME !!!]
-// for arm, Arm64, dobby will use b xxx instead of ldr absolute indirect branch
-// for x64, dobby always use absolute indirect jump
-#if defined(__arm__) || defined(__arm64__) || defined(__aarch64__) || defined(_M_X64) || defined(__x86_64__)
-void dobby_enable_near_branch_trampoline();
-void dobby_disable_near_branch_trampoline();
-#endif
-
-// register linker load image callback
-typedef void (*linker_load_callback_t)(const char *image_name, void *handle);
-void dobby_register_image_load_callback(linker_load_callback_t func);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/loader/dobby/source/InstructionRelocation/InstructionRelocation.h b/loader/dobby/source/InstructionRelocation/InstructionRelocation.h
deleted file mode 100644
index 69f5cb6e..00000000
--- a/loader/dobby/source/InstructionRelocation/InstructionRelocation.h
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "dobby_internal.h"
-
-void GenRelocateCodeAndBranch(void *buffer, AssemblyCodeChunk *origin, AssemblyCodeChunk *relocated);
diff --git a/loader/dobby/source/InstructionRelocation/arm/ARMInstructionRelocation.cc b/loader/dobby/source/InstructionRelocation/arm/ARMInstructionRelocation.cc
deleted file mode 100644
index c0ceb833..00000000
--- a/loader/dobby/source/InstructionRelocation/arm/ARMInstructionRelocation.cc
+++ /dev/null
@@ -1,870 +0,0 @@
-#include "platform_macro.h"
-#if defined(TARGET_ARCH_ARM)
-
-#include "InstructionRelocation/arm/ARMInstructionRelocation.h"
-
-#include "dobby_internal.h"
-
-#include "core/arch/arm/registers-arm.h"
-#include "core/modules/assembler/assembler-arm.h"
-#include "core/modules/codegen/codegen-arm.h"
-
-using namespace zz;
-using namespace zz::arm;
-
-typedef struct ReloMapEntry {
-  addr32_t orig_instr;
-  addr32_t relocated_instr;
-  int relocated_code_len;
-} ReloMapEntry;
-
-static bool is_thumb2(uint32_t instr) {
-  uint16_t inst1, inst2;
-  inst1 = instr & 0x0000ffff;
-  inst2 = (instr & 0xffff0000) >> 16;
-  // refer: Top level T32 instruction set encoding
-  uint32_t op0 = bits(inst1, 13, 15);
-  uint32_t op1 = bits(inst1, 11, 12);
-
-  if (op0 == 0b111 && op1 != 0b00) {
-    return true;
-  }
-  return false;
-}
-
-static void ARMRelocateSingleInstr(TurboAssembler *turbo_assembler, int32_t instr, addr32_t from_pc, addr32_t to_pc,
-                                   addr32_t *execute_state_changed_pc_ptr) {
-  bool is_instr_relocated = false;
-#define _ turbo_assembler->
-  // top level encoding
-  uint32_t cond, op0, op1;
-  cond = bits(instr, 28, 31);
-  op0 = bits(instr, 25, 27);
-  op1 = bit(instr, 4);
-  // Load/Store Word, Unsigned byte (immediate, literal)
-  if (cond != 0b1111 && op0 == 0b010) {
-    uint32_t P, U, o2, W, o1, Rn, Rt, imm12;
-    P = bit(instr, 24);
-    U = bit(instr, 23);
-    W = bit(instr, 21);
-    imm12 = bits(instr, 0, 11);
-    Rn = bits(instr, 16, 19);
-    Rt = bits(instr, 12, 15);
-    o1 = bit(instr, 20);
-    o2 = bit(instr, 22);
-    uint32_t P_W = (P << 1) | W;
-    do {
-      // LDR (literal)
-      if (o1 == 1 && o2 == 0 && P_W != 0b01 && Rn == 0b1111) {
-        goto load_literal_fix_scheme;
-      }
-      if (o1 == 1 && o2 == 1 && P_W != 0b01 && Rn == 0b1111) {
-        goto load_literal_fix_scheme;
-      }
-      break;
-    load_literal_fix_scheme:
-      addr32_t target_address = 0;
-      if (U == 0b1)
-        target_address = from_pc + imm12;
-      else
-        target_address = from_pc - imm12;
-      Register regRt = Register::R(Rt);
-
-      RelocLabelEntry *pseudoDataLabel = new RelocLabelEntry(target_address);
-      _ AppendRelocLabelEntry(pseudoDataLabel);
-
-      // ===
-      if (regRt.code() == pc.code()) {
-        _ Ldr(VOLATILE_REGISTER, pseudoDataLabel);
-        _ ldr(regRt, MemOperand(VOLATILE_REGISTER));
-      } else {
-        _ Ldr(regRt, pseudoDataLabel);
-        _ ldr(regRt, MemOperand(regRt));
-      }
-      // ===
-      is_instr_relocated = true;
-    } while (0);
-  }
-
-  // Data-processing and miscellaneous instructions
-  if (cond != 0b1111 && (op0 & 0b110) == 0b000) {
-    uint32_t op0, op1, op2, op3, op4;
-    op0 = bit(instr, 25);
-    // Data-processing immediate
-    if (op0 == 1) {
-      uint32_t op0, op1;
-      op0 = bits(instr, 23, 24);
-      op1 = bits(instr, 20, 21);
-      // Integer Data Processing (two register and immediate)
-      if ((op0 & 0b10) == 0b00) {
-        uint32_t opc, S, Rn;
-        opc = bits(instr, 21, 23);
-        S = bit(instr, 20);
-        Rn = bits(instr, 16, 19);
-        do {
-          uint32_t target_address;
-          int Rd = bits(instr, 12, 15);
-          int imm12 = bits(instr, 0, 11);
-          int label = imm12;
-          if (opc == 0b010 && S == 0b0 && Rn == 0b1111) {
-            // ADR - A2 variant
-            // add = FALSE
-            target_address = from_pc - imm12;
-          } else if (opc == 0b100 && S == 0b0 && Rn == 0b1111) {
-            // ADR - A1 variant
-            // add = TRUE
-            target_address = from_pc + imm12;
-          } else
-            break;
-
-          Register regRd = Register::R(Rd);
-          RelocLabelEntry *pseudoDataLabel = new RelocLabelEntry(target_address);
-          _ AppendRelocLabelEntry(pseudoDataLabel);
-          // ===
-          _ Ldr(regRd, pseudoDataLabel);
-          // ===
-          is_instr_relocated = true;
-        } while (0);
-
-        // EXample
-        if (opc == 0b111 && S == 0b1 && Rn == 0b1111) {
-          // do something
-        }
-      }
-    }
-  }
-
-  // Branch, branch with link, and block data transfer
-  if ((op0 & 0b110) == 0b100) {
-    uint32_t cond, op0;
-    cond = bits(instr, 28, 31);
-    op0 = bit(instr, 25);
-    // Branch (immediate)
-    if (op0 == 1) {
-      uint32_t cond = 0, H = 0, imm24 = 0;
-      bool flag_link;
-      do {
-        int imm24 = bits(instr, 0, 23);
-        int label = imm24 << 2;
-        uint32_t target_address = from_pc + label;
-        if (cond != 0b1111 && H == 0) {
-          // B
-          flag_link = false;
-        } else if (cond != 0b1111 && H == 1) {
-          // BL, BLX (immediate) - A1 variant
-          flag_link = true;
-        } else if (cond == 0b1111) {
-          // BL, BLX (immediate) - A2 variant
-          flag_link = true;
-        } else
-          break;
-
-        // ===
-        // just modify orin instruction label bits, and keep the link and cond bits, the next instruction `b_imm` will
-        // do the rest work.
-        label = 0x4;
-        imm24 = label >> 2;
-        _ EmitARMInst((instr & 0xff000000) | imm24);
-        if (flag_link) {
-          _ bl(0);
-          _ b(4);
-        } else {
-          _ b(4);
-        }
-        _ ldr(pc, MemOperand(pc, -4));
-        _ EmitAddress(target_address);
-        is_instr_relocated = true;
-      } while (0);
-    }
-  }
-
-  // if the instr do not needed relocate, just rewrite the origin
-  if (!is_instr_relocated) {
-    _ EmitARMInst(instr);
-  }
-}
-
-// relocate thumb-1 instructions
-static void Thumb1RelocateSingleInstr(ThumbTurboAssembler *turbo_assembler, LiteMutableArray *thumb_labels,
-                                      int16_t instr, addr32_t from_pc, addr32_t to_pc,
-                                      addr32_t *execute_state_changed_pc_ptr) {
-  bool is_instr_relocated = false;
-
-  _ AlignThumbNop();
-
-  uint32_t val = 0, op = 0, rt = 0, rm = 0, rn = 0, rd = 0, shift = 0, cond = 0;
-  int32_t offset = 0;
-
-  int32_t op0 = 0, op1 = 0;
-  op0 = bits(instr, 10, 15);
-  // [F3.2.3 Special data instructions and branch and exchange]
-  if (op0 == 0b010001) {
-    op0 = bits(instr, 8, 9);
-    // [Add, subtract, compare, move (two high registers)]
-    if (op0 != 0b11) {
-      int rs = bits(instr, 3, 6);
-      // rs is PC register
-      if (rs == 15) {
-        val = from_pc;
-
-        uint16_t rewrite_inst = 0;
-        rewrite_inst = (instr & 0xff87) | LeftShift((VOLATILE_REGISTER.code()), 4, 3);
-
-        ThumbRelocLabelEntry *label = new ThumbRelocLabelEntry(val, false);
-        _ AppendRelocLabelEntry(label);
-
-        _ T2_Ldr(VOLATILE_REGISTER, label);
-        _ EmitInt16(rewrite_inst);
-
-        is_instr_relocated = true;
-      }
-    }
-
-    // Branch and exchange
-    if (op0 == 0b11) {
-      int32_t L = bit(instr, 7);
-      // BX
-      if (L == 0b0) {
-        rm = bits(instr, 3, 6);
-        if (rm == pc.code()) {
-          val = from_pc;
-          ThumbRelocLabelEntry *label = new ThumbRelocLabelEntry(val, true);
-          _ AppendRelocLabelEntry(label);
-
-          _ T2_Ldr(pc, label);
-
-          *execute_state_changed_pc_ptr = val;
-          is_instr_relocated = true;
-        }
-      }
-      // BLX
-      if (L == 0b1) {
-        if (rm == pc.code()) {
-          val = from_pc;
-          ThumbRelocLabelEntry *label = new ThumbRelocLabelEntry(val, true);
-          _ AppendRelocLabelEntry(label);
-
-          int label_branch_off = 4, label_continue_off = 4;
-          _ t2_bl(label_branch_off);
-          _ t2_b(label_continue_off);
-          /* Label: branch */
-          _ T2_Ldr(pc, label);
-          /* Label: continue */
-
-          *execute_state_changed_pc_ptr = val;
-          is_instr_relocated = true;
-        }
-      }
-    }
-  }
-
-  // ldr literal
-  if ((instr & 0xf800) == 0x4800) {
-    int32_t imm8 = bits(instr, 0, 7);
-    int32_t offset = imm8 << 2;
-    val = from_pc + offset;
-    val = ALIGN_FLOOR(val, 4);
-    rt = bits(instr, 8, 10);
-
-    ThumbRelocLabelEntry *label = new ThumbRelocLabelEntry(val, false);
-    _ AppendRelocLabelEntry(label);
-
-    _ T2_Ldr(Register::R(rt), label);
-    _ t2_ldr(Register::R(rt), MemOperand(Register::R(rt), 0));
-
-    is_instr_relocated = true;
-  }
-
-  // adr
-  if ((instr & 0xf800) == 0xa000) {
-    rd = bits(instr, 8, 10);
-    uint16_t imm8 = bits(instr, 0, 7);
-    val = from_pc + imm8;
-
-    ThumbRelocLabelEntry *label = new ThumbRelocLabelEntry(val, false);
-    _ AppendRelocLabelEntry(label);
-
-    _ T2_Ldr(Register::R(rd), label);
-
-    if (pc.code() == rd)
-      val += 1;
-    is_instr_relocated = true;
-  }
-
-  // b
-  if ((instr & 0xf000) == 0xd000) {
-    uint16_t cond = bits(instr, 8, 11);
-    // cond != 111x
-    if (cond >= 0b1110) {
-      UNREACHABLE();
-    }
-    uint16_t imm8 = bits(instr, 0, 7);
-    uint32_t offset = imm8 << 1;
-    val = from_pc + offset;
-
-    ThumbRelocLabelEntry *label = new ThumbRelocLabelEntry(val + 1, true);
-    _ AppendRelocLabelEntry(label);
-
-    // modify imm8 field
-    imm8 = 0x4 >> 1;
-
-    _ EmitInt16((instr & 0xfff0) | imm8);
-    _ t1_nop(); // manual align
-    _ t2_b(4);
-    _ T2_Ldr(pc, label);
-
-    is_instr_relocated = true;
-  }
-
-  // compare branch (cbz, cbnz)
-  if ((instr & 0xf500) == 0xb100) {
-    uint16_t imm5 = bits(instr, 3, 7);
-    uint16_t i = bit(instr, 9);
-    uint32_t offset = (i << 6) | (imm5 << 1);
-    val = from_pc + offset;
-    rn = bits(instr, 0, 2);
-
-    ThumbRelocLabelEntry *label = new ThumbRelocLabelEntry(val + 1, true);
-    _ AppendRelocLabelEntry(label);
-
-    imm5 = bits(0x4 >> 1, 1, 5);
-    i = bit(0x4 >> 1, 6);
-
-    _ EmitInt16((instr & 0xfd07) | imm5 << 3 | i << 9);
-    _ t1_nop(); // manual align
-    _ t2_b(0);
-    _ T2_Ldr(pc, label);
-
-    is_instr_relocated = true;
-  }
-
-  // unconditional branch
-  if ((instr & 0xf800) == 0xe000) {
-    uint16_t imm11 = bits(instr, 0, 10);
-    uint32_t offset = imm11 << 1;
-    val = from_pc + offset;
-
-    ThumbRelocLabelEntry *label = new ThumbRelocLabelEntry(val + 1, true);
-    _ AppendRelocLabelEntry(label);
-
-    _ T2_Ldr(pc, label);
-
-    is_instr_relocated = true;
-  }
-
-  // if the instr do not needed relocate, just rewrite the origin
-  if (!is_instr_relocated) {
-#if 0
-        if (from_pc % Thumb2_INST_LEN)
-            _ t1_nop();
-#endif
-    _ EmitInt16(instr);
-  }
-}
-
-static void Thumb2RelocateSingleInstr(ThumbTurboAssembler *turbo_assembler, LiteMutableArray *thumb_labels,
-                                      thumb1_inst_t inst1, thumb1_inst_t inst2, addr32_t from_pc, addr32_t to_pc) {
-
-  bool is_instr_relocated = false;
-
-  // if (turbo_assembler->pc_offset() % 4) {
-  //   _ t1_nop();
-  // }
-
-  _ AlignThumbNop();
-
-  // Branches and miscellaneous control
-  if ((inst1 & 0xf800) == 0xf000 && (inst2 & 0x8000) == 0x8000) {
-    uint32_t op1 = 0, op3 = 0;
-    op1 = bits(inst1, 6, 9);
-    op3 = bits(inst2, 12, 14);
-
-    // B-T3 AKA b.cond
-    if (((op1 & 0b1110) != 0b1110) && ((op3 & 0b101) == 0b000)) {
-
-      int S = sbits(inst1, 10, 10);
-      int J1 = bit(inst2, 13);
-      int J2 = bit(inst2, 11);
-      int imm6 = bits(inst1, 0, 5);
-      int imm11 = bits(inst2, 0, 10);
-
-      int32_t label = (S << 20) | (J2 << 19) | (J1 << 18) | (imm6 << 12) | (imm11 << 1);
-      addr32_t val = from_pc + label;
-
-      // ===
-      imm11 = 0x4 >> 1;
-      _ EmitInt16(inst1 & 0xffc0);           // clear imm6
-      _ EmitInt16((inst2 & 0xd000) | imm11); // 1. clear J1, J2, origin_imm12 2. set new imm11
-
-      _ t2_b(4);
-      _ t2_ldr(pc, MemOperand(pc, 0));
-      _ EmitAddress(val + THUMB_ADDRESS_FLAG);
-      // ===
-      is_instr_relocated = true;
-    }
-
-    // B-T4 AKA b.w
-    if ((op3 & 0b101) == 0b001) {
-      int S = bit(inst1, 10);
-      int J1 = bit(inst2, 13);
-      int J2 = bit(inst2, 11);
-      int imm10 = bits(inst1, 0, 9);
-      int imm11 = bits(inst2, 0, 10);
-      int i1 = !(J1 ^ S);
-      int i2 = !(J2 ^ S);
-
-      int32_t label = (-S << 24) | (i1 << 23) | (i2 << 22) | (imm10 << 12) | (imm11 << 1);
-      addr32_t val = from_pc + label;
-
-      _ t2_ldr(pc, MemOperand(pc, 0));
-      _ EmitAddress(val + THUMB_ADDRESS_FLAG);
-      // ===
-      is_instr_relocated = true;
-    }
-
-    // BL, BLX (immediate) - T1 variant AKA bl
-    if ((op3 & 0b101) == 0b101) {
-      int S = bit(inst1, 10);
-      int J1 = bit(inst2, 13);
-      int J2 = bit(inst2, 11);
-      int i1 = !(J1 ^ S);
-      int i2 = !(J2 ^ S);
-      int imm11 = bits(inst2, 0, 10);
-      int imm10 = bits(inst1, 0, 9);
-      // S is sign-bit, '-S' maybe not better
-      int32_t label = (imm11 << 1) | (imm10 << 12) | (i2 << 22) | (i1 << 23) | (-S << 24);
-      addr32_t val = from_pc + label;
-
-      _ t2_bl(4);
-      _ t2_b(8);
-      _ t2_ldr(pc, MemOperand(pc, 0));
-      _ EmitAddress(val + THUMB_ADDRESS_FLAG);
-      // =====
-      is_instr_relocated = true;
-    }
-
-    // BL, BLX (immediate) - T2 variant AKA blx
-    if ((op3 & 0b101) == 0b100) {
-      int S = bit(inst1, 10);
-      int J1 = bit(inst2, 13);
-      int J2 = bit(inst2, 11);
-      int i1 = !(J1 ^ S);
-      int i2 = !(J2 ^ S);
-      int imm10h = bits(inst1, 0, 9);
-      int imm10l = bits(inst2, 1, 10);
-      // S is sign-bit, '-S' maybe not better
-      int32_t label = (imm10l << 2) | (imm10h << 12) | (i2 << 22) | (i1 << 23) | (-S << 24);
-      addr32_t val = ALIGN(from_pc, 4) + label;
-
-      _ t2_bl(4);
-      _ t2_b(8);
-      _ t2_ldr(pc, MemOperand(pc, 0));
-      _ EmitAddress(val);
-      // =====
-      is_instr_relocated = true;
-    }
-  }
-
-  // Data-processing (plain binary immediate)
-  if ((inst1 & (0xfa10)) == 0xf200 & (inst2 & 0x8000) == 0) {
-    uint32_t op0 = 0, op1 = 0;
-    op0 = bit(inst1, 8);
-    op1 = bits(inst2, 5, 6);
-
-    // Data-processing (simple immediate)
-    if (op0 == 0 && (op1 & 0b10) == 0b00) {
-      int o1 = bit(inst1, 7);
-      int o2 = bit(inst1, 5);
-      int rn = bits(inst1, 0, 3);
-
-      // ADR
-      if (((o1 == 0 && o2 == 0) || (o1 == 1 && o2 == 1)) && rn == 0b1111) {
-        uint32_t i = bit(inst1, 10);
-        uint32_t imm3 = bits(inst2, 12, 14);
-        uint32_t imm8 = bits(inst2, 0, 7);
-        uint32_t rd = bits(inst2, 8, 11);
-        uint32_t label = imm8 | (imm3 << 8) | (i << 11);
-        addr32_t val = 0;
-
-        if (o1 == 0 && o2 == 0) { // ADR - T3
-          // ADR - T3 variant
-          // adr with add
-          val = from_pc + label;
-        } else if (o1 == 1 && o2 == 1) { // ADR - T2
-          // ADR - T2 variant
-          // adr with sub
-          val = from_pc - label;
-        } else {
-          UNREACHABLE();
-        }
-
-        // ===
-        _ t2_ldr(Register::R(rd), MemOperand(pc, 4));
-        _ t2_b(0);
-        _ EmitAddress(val);
-        // ===
-        is_instr_relocated = true;
-      }
-    }
-  }
-
-  // LDR literal (T2)
-  if ((inst1 & 0xff7f) == 0xf85f) {
-    uint32_t U = bit(inst1, 7);
-    uint32_t imm12 = bits(inst2, 0, 11);
-    uint16_t rt = bits(inst2, 12, 15);
-
-    uint32_t label = imm12;
-    addr32_t val = 0;
-    if (U == 1) {
-      val = from_pc + label;
-    } else {
-      val = from_pc - label;
-    }
-
-    val = ALIGN_FLOOR(val, 4);
-
-    Register regRt = Register::R(rt);
-    // =====
-    _ t2_ldr(regRt, MemOperand(pc, 4));
-    _ t2_b(4);
-    _ EmitAddress(val);
-    _ t2_ldr(regRt, MemOperand(regRt, 0));
-    // =====
-    is_instr_relocated = true;
-  }
-
-  // if the instr do not needed relocate, just rewrite the origin
-  if (!is_instr_relocated) {
-#if 0
-        if (from_pc % Thumb2_INST_LEN)
-            _ t1_nop();
-#endif
-    _ EmitInt16(inst1);
-    _ EmitInt16(inst2);
-  }
-}
-
-void gen_arm_relocate_code(LiteMutableArray *relo_map, TurboAssembler *turbo_assembler_, void *buffer,
-                           AssemblyCodeChunk *origin, AssemblyCodeChunk *relocated,
-                           addr32_t *execute_state_changed_pc_ptr) {
-#undef _
-#define _ turbo_assembler_->
-  addr32_t curr_orig_pc = origin->raw_instruction_start() + ARM_PC_OFFSET;
-  addr32_t curr_relo_pc = relocated->raw_instruction_start() + ARM_PC_OFFSET + turbo_assembler_->pc_offset();
-
-  addr_t buffer_cursor = (addr_t)buffer;
-  arm_inst_t instr = *(arm_inst_t *)buffer_cursor;
-
-  int predefined_relocate_size = origin->raw_instruction_size();
-
-  addr32_t execute_state_changed_pc = 0;
-
-  while (buffer_cursor < ((addr_t)buffer + predefined_relocate_size)) {
-    int last_relo_offset = turbo_assembler_->GetCodeBuffer()->getSize();
-
-    ARMRelocateSingleInstr(turbo_assembler_, instr, curr_orig_pc, curr_relo_pc, execute_state_changed_pc_ptr);
-    DLOG(0, "[arm] Relocate arm instr: 0x%x", instr);
-
-    {
-      // 1 orignal instrution => ? relocated instruction
-      int relo_offset = turbo_assembler_->GetCodeBuffer()->getSize();
-      int relo_len = relo_offset - last_relo_offset;
-
-      ReloMapEntry *map = new ReloMapEntry{.orig_instr = curr_orig_pc - ARM_PC_OFFSET,
-                                           .relocated_instr = curr_relo_pc - ARM_PC_OFFSET,
-                                           .relocated_code_len = relo_len};
-      relo_map->pushObject(reinterpret_cast<LiteObject *>(map));
-    }
-
-    curr_relo_pc = relocated->raw_instruction_start() + ARM_PC_OFFSET + turbo_assembler_->pc_offset();
-
-    // Move to next instruction
-    curr_orig_pc += ARM_INST_LEN;
-    buffer_cursor += ARM_INST_LEN;
-
-    // execute state changed
-    addr32_t next_instr_addr = curr_orig_pc - ARM_PC_OFFSET;
-    if (execute_state_changed_pc != 0 && next_instr_addr == execute_state_changed_pc) {
-      break;
-    }
-
-    instr = *(arm_inst_t *)buffer_cursor;
-  }
-
-  // update origin
-  int new_origin_len = curr_orig_pc - origin->raw_instruction_start() - ARM_PC_OFFSET;
-  origin->re_init_region_range(origin->raw_instruction_start(), new_origin_len);
-
-  bool is_relocate_interrupted = buffer_cursor < ((addr_t)buffer + predefined_relocate_size);
-  if (is_relocate_interrupted) {
-    *execute_state_changed_pc_ptr = execute_state_changed_pc;
-  }
-}
-
-void gen_thumb_relocate_code(LiteMutableArray *relo_map, ThumbTurboAssembler *turbo_assembler_, void *buffer,
-                             AssemblyCodeChunk *origin, AssemblyCodeChunk *relocated,
-                             addr32_t *execute_state_changed_pc_ptr) {
-  LiteMutableArray thumb_labels(8);
-#define _ turbo_assembler_->
-
-  addr32_t curr_orig_pc = origin->raw_instruction_start() + Thumb_PC_OFFSET;
-  addr32_t curr_relo_pc = relocated->raw_instruction_start() + Thumb_PC_OFFSET;
-
-  addr_t buffer_cursor = (addr_t)buffer;
-  thumb2_inst_t instr = *(thumb2_inst_t *)buffer_cursor;
-
-  int predefined_relocate_size = origin->raw_instruction_size();
-  DLOG(0, "[arm] Thumb relocate %d start >>>>>", predefined_relocate_size);
-
-  addr32_t execute_state_changed_pc = 0;
-
-  while (buffer_cursor < ((addr_t)buffer + predefined_relocate_size)) {
-    // align nop
-    _ t1_nop();
-
-    int last_relo_offset = turbo_assembler_->GetCodeBuffer()->getSize();
-    if (is_thumb2(instr)) {
-      Thumb2RelocateSingleInstr(turbo_assembler_, &thumb_labels, (uint16_t)instr, (uint16_t)(instr >> 16), curr_orig_pc,
-                                curr_relo_pc);
-
-      DLOG(0, "[arm] Relocate thumb2 instr: 0x%x", instr);
-    } else {
-      Thumb1RelocateSingleInstr(turbo_assembler_, &thumb_labels, (uint16_t)instr, curr_orig_pc, curr_relo_pc,
-                                &execute_state_changed_pc);
-
-      DLOG(0, "[arm] Relocate thumb1 instr: 0x%x", (uint16_t)instr);
-    }
-
-    {
-      // 1 orignal instrution => ? relocated instruction
-      int relo_offset = turbo_assembler_->GetCodeBuffer()->getSize();
-      int relo_len = relo_offset - last_relo_offset;
-
-      ReloMapEntry *map = new ReloMapEntry{.orig_instr = curr_orig_pc - Thumb_PC_OFFSET,
-                                           .relocated_instr = curr_relo_pc - Thumb_PC_OFFSET,
-                                           .relocated_code_len = relo_len};
-      relo_map->pushObject(reinterpret_cast<LiteObject *>(map));
-    }
-
-    curr_relo_pc = relocated->raw_instruction_start() + Thumb_PC_OFFSET + turbo_assembler_->pc_offset();
-
-    // Move to next instruction
-    if (is_thumb2(instr)) {
-      curr_orig_pc += Thumb2_INST_LEN;
-      buffer_cursor += Thumb2_INST_LEN;
-    } else {
-      curr_orig_pc += Thumb1_INST_LEN;
-      buffer_cursor += Thumb1_INST_LEN;
-    }
-
-    // execute state changed
-    addr32_t next_instr_addr = curr_orig_pc - Thumb_PC_OFFSET;
-    if (execute_state_changed_pc != 0 && next_instr_addr == execute_state_changed_pc) {
-      break;
-    }
-
-    instr = *(thumb2_inst_t *)buffer_cursor;
-  }
-
-  // update origin
-  int new_origin_len = curr_orig_pc - origin->raw_instruction_start() - Thumb_PC_OFFSET;
-  origin->re_init_region_range(origin->raw_instruction_start(), new_origin_len);
-
-  /*
-  .thumb1 bx pc
-  .thumb1 mov r8, r8
-  .arm ldr pc, [pc, #-4]
-   */
-
-  bool is_relocate_interrupted = buffer_cursor < ((addr_t)buffer + predefined_relocate_size);
-  if (is_relocate_interrupted) {
-    *execute_state_changed_pc_ptr = execute_state_changed_pc;
-    turbo_assembler_->SetExecuteState(ARMExecuteState);
-  }
-}
-
-static addr32_t get_orig_instr_relocated_addr(LiteMutableArray *relo_map, addr32_t orig_pc) {
-  for (size_t i = 0; i < relo_map->getCount(); i++) {
-    ReloMapEntry *relo_entry = (ReloMapEntry *)relo_map->getObject(i);
-    if (relo_entry->orig_instr == orig_pc) {
-      return relo_entry->relocated_instr;
-    }
-  }
-  return 0;
-}
-
-static void reloc_label_fixup(AssemblyCodeChunk *origin, LiteMutableArray *relo_map,
-                              ThumbTurboAssembler *thumb_turbo_assembler, TurboAssembler *arm_turbo_assembler) {
-  addr32_t origin_instr_start = origin->raw_instruction_start();
-  addr32_t origin_instr_end = origin_instr_start + origin->raw_instruction_size();
-
-  LiteMutableArray *labels = NULL;
-  labels = thumb_turbo_assembler->GetLabels();
-  if (labels) {
-    for (size_t i = 0; i < labels->getCount(); i++) {
-      ThumbRelocLabelEntry *label = (ThumbRelocLabelEntry *)labels->getObject(i);
-      if (label->used_for_branch() == false)
-        continue;
-      addr32_t val = label->data();
-
-      if (val >= origin_instr_start && val < origin_instr_end) {
-        DLOG(0, "[reloc label fixup warning] found thumb instr branch / access in origin code range");
-        addr32_t fixup_val = get_orig_instr_relocated_addr(relo_map, val);
-        fixup_val += (addr_t)thumb_turbo_assembler->GetRealizedAddress();
-        label->fixup_data(fixup_val);
-        thumb_turbo_assembler->RelocBindFixup(label);
-      }
-    }
-  }
-
-  labels = arm_turbo_assembler->GetLabels();
-  if (labels) {
-    for (size_t i = 0; i < labels->getCount(); i++) {
-      RelocLabelEntry *label = (RelocLabelEntry *)labels->getObject(i);
-      addr32_t val = label->data();
-
-      if (val >= origin_instr_start && val < origin_instr_end) {
-        DLOG(0, "[reloc label fixup warning]found thumb instr branch / access in origin code range");
-        addr32_t fixup_val = get_orig_instr_relocated_addr(relo_map, val);
-        fixup_val += (addr_t)arm_turbo_assembler->GetRealizedAddress();
-        label->fixup_data(fixup_val);
-        arm_turbo_assembler->RelocBindFixup(label);
-      }
-    }
-  }
-}
-
-void GenRelocateCodeAndBranch(void *buffer, AssemblyCodeChunk *origin, AssemblyCodeChunk *relocated) {
-  CodeBuffer *code_buffer = new CodeBuffer(64);
-
-  ThumbTurboAssembler thumb_turbo_assembler_(0, code_buffer);
-#define thumb_ thumb_turbo_assembler_.
-  TurboAssembler arm_turbo_assembler_(0, code_buffer);
-#define arm_ arm_turbo_assembler_.
-
-  Assembler *curr_assembler_ = NULL;
-
-  AssemblyCodeChunk origin_chunk;
-  origin_chunk.init_region_range(origin->raw_instruction_start(), origin->raw_instruction_size());
-
-  bool entry_is_thumb = origin->raw_instruction_start() % 2;
-  if (entry_is_thumb) {
-    origin->re_init_region_range(origin->raw_instruction_start() - THUMB_ADDRESS_FLAG, origin->raw_instruction_size());
-  }
-
-  LiteMutableArray relo_map(8);
-
-relocate_remain:
-  addr32_t execute_state_changed_pc = 0;
-
-  bool is_thumb = origin_chunk.raw_instruction_start() % 2;
-  if (is_thumb) {
-    curr_assembler_ = &thumb_turbo_assembler_;
-
-    buffer = (void *)((addr_t)buffer - THUMB_ADDRESS_FLAG);
-
-    addr32_t origin_code_start_aligned = origin_chunk.raw_instruction_start() - THUMB_ADDRESS_FLAG;
-    // remove thumb address flag
-    origin_chunk.re_init_region_range(origin_code_start_aligned, origin_chunk.raw_instruction_size());
-
-    gen_thumb_relocate_code(&relo_map, &thumb_turbo_assembler_, buffer, &origin_chunk, relocated,
-                            &execute_state_changed_pc);
-    if (thumb_turbo_assembler_.GetExecuteState() == ARMExecuteState) {
-      // relocate interrupt as execute state changed
-      if (execute_state_changed_pc < origin_chunk.raw_instruction_start() + origin_chunk.raw_instruction_size()) {
-        // re-init the origin
-        int relocate_remain_size =
-            origin_chunk.raw_instruction_start() + origin_chunk.raw_instruction_size() - execute_state_changed_pc;
-        // current execute state is ARMExecuteState, so not need `+ THUMB_ADDRESS_FLAG`
-        origin_chunk.re_init_region_range(execute_state_changed_pc, relocate_remain_size);
-
-        // update buffer
-        buffer = (void *)((addr_t)buffer + (execute_state_changed_pc - origin_code_start_aligned));
-
-        // add nop to align ARM
-        if (thumb_turbo_assembler_.pc_offset() % 4)
-          thumb_turbo_assembler_.t1_nop();
-        goto relocate_remain;
-      }
-    }
-  } else {
-    curr_assembler_ = &arm_turbo_assembler_;
-
-    gen_arm_relocate_code(&relo_map, &arm_turbo_assembler_, buffer, &origin_chunk, relocated,
-                          &execute_state_changed_pc);
-    if (arm_turbo_assembler_.GetExecuteState() == ThumbExecuteState) {
-      // relocate interrupt as execute state changed
-      if (execute_state_changed_pc < origin_chunk.raw_instruction_start() + origin_chunk.raw_instruction_size()) {
-        // re-init the origin
-        int relocate_remain_size =
-            origin_chunk.raw_instruction_start() + origin_chunk.raw_instruction_size() - execute_state_changed_pc;
-        // current execute state is ThumbExecuteState, add THUMB_ADDRESS_FLAG
-        origin_chunk.re_init_region_range(execute_state_changed_pc + THUMB_ADDRESS_FLAG, relocate_remain_size);
-
-        // update buffer
-        buffer = (void *)((addr_t)buffer + (execute_state_changed_pc - origin_chunk.raw_instruction_start()));
-        goto relocate_remain;
-      }
-    }
-  }
-
-  // TODO:
-  // if last instr is unlink branch, skip
-  addr32_t rest_instr_addr = origin_chunk.raw_instruction_start() + origin_chunk.raw_instruction_size();
-  if (curr_assembler_ == &thumb_turbo_assembler_) {
-    // Branch to the rest of instructions
-    thumb_ AlignThumbNop();
-    thumb_ t2_ldr(pc, MemOperand(pc, 0));
-    // Get the real branch address
-    thumb_ EmitAddress(rest_instr_addr + THUMB_ADDRESS_FLAG);
-  } else {
-    // Branch to the rest of instructions
-    CodeGen codegen(&arm_turbo_assembler_);
-    // Get the real branch address
-    codegen.LiteralLdrBranch(rest_instr_addr);
-  }
-
-  // Realize all the Pseudo-Label-Data
-  thumb_turbo_assembler_.RelocBind();
-
-  // Realize all the Pseudo-Label-Data
-  arm_turbo_assembler_.RelocBind();
-
-  // Generate executable code
-  {
-    // assembler without specific memory address
-    AssemblyCodeChunk *cchunk;
-    cchunk = MemoryArena::AllocateCodeChunk(code_buffer->getSize());
-    if (cchunk == nullptr)
-      return;
-
-    thumb_turbo_assembler_.SetRealizedAddress(cchunk->address);
-    arm_turbo_assembler_.SetRealizedAddress(cchunk->address);
-
-    // fixup the instr branch into trampoline(has been modified)
-    reloc_label_fixup(origin, &relo_map, &thumb_turbo_assembler_, &arm_turbo_assembler_);
-
-    AssemblyCodeChunk *code = NULL;
-    code = AssemblyCodeBuilder::FinalizeFromTurboAssembler(curr_assembler_);
-    relocated->re_init_region_range(code->raw_instruction_start(), code->raw_instruction_size());
-    delete code;
-  }
-
-  // thumb
-  if (entry_is_thumb) {
-    // add thumb address flag
-    relocated->re_init_region_range(relocated->raw_instruction_start() + THUMB_ADDRESS_FLAG,
-                                    relocated->raw_instruction_size());
-  }
-
-  // clean
-  {
-    thumb_turbo_assembler_.ClearCodeBuffer();
-    arm_turbo_assembler_.ClearCodeBuffer();
-
-    delete code_buffer;
-  }
-}
-
-#endif
diff --git a/loader/dobby/source/InstructionRelocation/arm/ARMInstructionRelocation.h b/loader/dobby/source/InstructionRelocation/arm/ARMInstructionRelocation.h
deleted file mode 100644
index 1573adf1..00000000
--- a/loader/dobby/source/InstructionRelocation/arm/ARMInstructionRelocation.h
+++ /dev/null
@@ -1,360 +0,0 @@
-#ifndef INSTRUCTION_RELOCATION_ARM_H
-#define INSTRUCTION_RELOCATION_ARM_H
-
-#include "dobby_internal.h"
-
-#include "core/arch/arm/constants-arm.h"
-#include "core/modules/assembler/assembler-arm.h"
-
-namespace zz {
-namespace arm {
-
-// custom thumb pseudo label for thumb/thumb2
-class ThumbPseudoLabel : public PseudoLabel {
-public:
-  // thumb1/thumb2 pseudo label type, only support Thumb1-Ldr | Thumb2-Ldr
-  enum CustomThumbPseudoLabelType { kThumb1Ldr, kThumb2LiteralLdr };
-
-  // fix the instruction which not link to the label yet.
-  void link_confused_instructions(CodeBuffer *buffer = nullptr) {
-    CodeBuffer *_buffer;
-    if (buffer)
-      _buffer = buffer;
-
-    for (size_t i = 0; i < instructions_.getCount(); i++) {
-      PseudoLabelInstruction *instruction = (PseudoLabelInstruction *)instructions_.getObject(i);
-
-      // instruction offset to label
-      const thumb2_inst_t instr = _buffer->LoadThumb2Inst(instruction->position_);
-      const thumb1_inst_t inst1 = _buffer->LoadThumb1Inst(instruction->position_);
-      const thumb1_inst_t inst2 = _buffer->LoadThumb1Inst(instruction->position_ + sizeof(thumb1_inst_t));
-
-      switch (instruction->type_) {
-      case kThumb1Ldr: {
-        UNREACHABLE();
-      } break;
-      case kThumb2LiteralLdr: {
-        int32_t offset = pos() - ALIGN(instruction->position_, 4) - Thumb_PC_OFFSET;
-        uint32_t imm12 = offset;
-        CHECK(imm12 < (1 << 12));
-        uint16_t encoding = inst2 & 0xf000;
-        encoding = encoding | imm12;
-        _buffer->RewriteThumb1Inst(instruction->position_, inst1 | B7); // add = (U == '1');
-        _buffer->RewriteThumb1Inst(instruction->position_ + Thumb1_INST_LEN, encoding);
-
-        DLOG(0, "[thumb label link] insn offset %d link offset %d", instruction->position_, offset);
-      } break;
-      default:
-        UNREACHABLE();
-        break;
-      }
-    }
-
-#if 0
-    for (auto instruction : instructions_) {
-      // instruction offset to label
-      int32_t offset      = pos() - instruction.position_ - Thumb_PC_OFFSET;
-      const int32_t instr  = _buffer->Load<int32_t>(instruction.position_);
-      const int16_t inst1 = _buffer->Load<int16_t>(instruction.position_);
-      const int16_t inst2 = _buffer->Load<int16_t>(instruction.position_ + sizeof(int16_t));
-
-      switch (instruction.type_) {
-      case kThumb1Ldr: {
-        UNREACHABLE();
-      } break;
-      case kThumb2LiteralLdr: {
-        uint32_t imm12 = offset;
-        CHECK(imm12 < (1 << 12));
-        uint16_t encoding = inst2 & 0xf000;
-        encoding          = encoding | imm12;
-        _buffer->Store<int16_t>(instruction.position_, inst1 | B7); // add = (U == '1');
-        _buffer->Store<int16_t>(instruction.position_ + Thumb1_INST_LEN, encoding);
-      } break;
-      default:
-        UNREACHABLE();
-        break;
-      }
-    }
-#endif
-  }
-};
-
-class ThumbRelocLabelEntry : public ThumbPseudoLabel {
-public:
-  explicit ThumbRelocLabelEntry(uint32_t data, bool used_for_branch)
-      : data_size_(0), used_for_branch_(used_for_branch) {
-    data_ = data;
-  }
-
-  uint32_t data() {
-    return data_;
-  }
-
-  void fixup_data(uint32_t data) {
-    data_ = data;
-  }
-
-  bool used_for_branch() {
-    return used_for_branch_;
-  }
-
-private:
-  uint32_t data_;
-
-  int data_size_;
-
-  bool used_for_branch_;
-};
-
-// ================================================================
-// ThumbAssembler
-
-class ThumbAssembler : public Assembler {
-public:
-  ThumbAssembler(void *address) : Assembler(address) {
-    this->SetExecuteState(ThumbExecuteState);
-  }
-
-  ThumbAssembler(void *address, CodeBuffer *buffer) : Assembler(address, buffer) {
-    this->SetExecuteState(ThumbExecuteState);
-  }
-
-  void EmitInt16(int16_t val) {
-    buffer_->Emit16(val);
-  }
-
-  void Emit2Int16(int16_t val1, int16_t val2) {
-    EmitInt16(val1);
-    EmitInt16(val2);
-  }
-
-  void EmitAddress(uint32_t value) {
-    buffer_->Emit32(value);
-  }
-
-  // =====
-  void t1_nop() {
-    EmitInt16(0xbf00);
-  }
-  void t1_b(int32_t imm) {
-    ASSERT(CheckSignLength(imm, 12));
-    ASSERT(CheckAlign(imm, 2));
-
-    int32_t imm11 = bits(imm >> 1, 0, 10);
-    EmitInt16(0xe000 | imm11);
-  }
-
-  // =====
-  void t2_b(uint32_t imm) {
-    EmitThumb2Branch(AL, imm, false);
-  }
-  void t2_bl(uint32_t imm) {
-    EmitThumb2Branch(AL, imm, true);
-  }
-  void t2_blx(uint32_t imm) {
-    UNIMPLEMENTED();
-  }
-
-  // =====
-  void t2_ldr(Register dst, const MemOperand &src) {
-    // WARNNING: literal ldr, base = ALIGN(pc, 4)
-    EmitThumb2LoadStore(true, dst, src);
-  }
-
-private:
-  void EmitThumb2LoadLiteral(Register rt, const MemOperand x) {
-    bool add = true;
-    uint32_t U, imm12;
-    int32_t offset = x.offset();
-
-#if 0
-    // literal ldr, base = ALIGN(pc, 4)
-    if (rt.Is(pc)) {
-      // TODO: convert to `GetRealizedAddress()` ???
-      addr_t curr_pc = pc_offset() + (addr_t)GetRealizedAddress();
-      if (curr_pc % 4) {
-        t1_nop();
-      }
-    }
-#endif
-
-    if (offset > 0) {
-      U = B7;
-      imm12 = offset;
-    } else {
-      U = 0;
-      imm12 = -offset;
-    }
-    EmitInt16(0xf85f | U);
-    EmitInt16(0x0 | (rt.code() << 12) | imm12);
-  }
-  void EmitThumb2LoadStore(bool load, Register rt, const MemOperand x) {
-    if (x.rn().Is(pc)) {
-      EmitThumb2LoadLiteral(rt, x);
-      return;
-    }
-
-    bool index, add, wback;
-    if (x.IsRegisterOffset() && x.offset() >= 0) {
-      index = true, add = true, wback = false;
-      uint32_t imm12 = x.offset();
-      EmitInt16(0xf8d0 | (x.rn().code() << 0));
-      EmitInt16(0x0 | (rt.code() << 12) | imm12);
-    } else {
-      // use bit accelerate
-      uint32_t P = 0, W = 0, U = 0;
-      uint32_t imm8 = x.offset() > 0 ? x.offset() : -x.offset();
-      U = x.offset() > 0 ? 0 : B9;
-      if (x.IsPostIndex()) {
-        P = 0, W = B8;
-      } else if (x.IsPreIndex()) {
-        P = B10, W = B8;
-      }
-      index = (P == B10);
-      add = (U == B9);
-      wback = (W == B8);
-      EmitInt16(0xf850 | (x.rn().code() << 0));
-      EmitInt16(0x0800 | (rt.code() << 12) | P | U | W | imm8);
-    }
-  }
-
-  // =====
-  void EmitThumb2Branch(Condition cond, int32_t imm, bool link) {
-    uint32_t operand = imm >> 1;
-    ASSERT(CheckSignLength(operand, 25));
-    ASSERT(CheckAlign(operand, 2));
-
-    uint32_t signbit = (imm >> 31) & 0x1;
-    uint32_t i1 = (operand >> 22) & 0x1;
-    uint32_t i2 = (operand >> 21) & 0x1;
-    uint32_t imm10 = (operand >> 11) & 0x03ff;
-    uint32_t imm11 = operand & 0x07ff;
-    uint32_t j1 = (!(i1 ^ signbit));
-    uint32_t j2 = (!(i2 ^ signbit));
-
-    if (cond != AL) {
-      UNIMPLEMENTED();
-    }
-
-    EmitInt16(0xf000 | LeftShift(signbit, 1, 10) | LeftShift(imm10, 10, 0));
-    if (link) {
-      // Not use LeftShift(1, 1, 14), and use B14 for accelerate
-      EmitInt16(0x9000 | LeftShift(j1, 1, 13) | (LeftShift(j2, 1, 11)) | LeftShift(imm11, 11, 0) | B14);
-    } else {
-      EmitInt16(0x9000 | LeftShift(j1, 1, 13) | (LeftShift(j2, 1, 11)) | LeftShift(imm11, 11, 0));
-    }
-  }
-};
-
-// ================================================================
-// ThumbTurboAssembler
-
-class ThumbTurboAssembler : public ThumbAssembler {
-public:
-  ThumbTurboAssembler(void *address) : ThumbAssembler(address) {
-    data_labels_ = NULL;
-  }
-
-  ThumbTurboAssembler(void *address, CodeBuffer *buffer) : ThumbAssembler(address, buffer) {
-    data_labels_ = NULL;
-  }
-
-  ~ThumbTurboAssembler() {
-    if (data_labels_) {
-      for (size_t i = 0; i < data_labels_->getCount(); i++) {
-        RelocLabelEntry *label = (RelocLabelEntry *)data_labels_->getObject(i);
-        delete label;
-      }
-
-      delete data_labels_;
-    }
-  }
-
-  void T1_Ldr(Register rt, ThumbPseudoLabel *label) {
-    UNREACHABLE();
-
-// t1_ldr: rt can't be PC register
-// ===
-#if 0
-    if (label->is_bound()) {
-      const int64_t dest = label->pos() - buffer_.Size();
-      ldr(rt, MemOperand(pc, dest));
-    } else {
-      // record this ldr, and fix later.
-      label->link_to(buffer_.Size(), ThumbPseudoLabel::kThumb1Ldr);
-      ldr(rt, MemOperand(pc, 0));
-    }
-#endif
-  }
-
-  void T2_Ldr(Register rt, ThumbPseudoLabel *label) {
-    if (label->is_bound()) {
-      int offset = label->pos() - buffer_->getSize();
-      t2_ldr(rt, MemOperand(pc, offset));
-    } else {
-      // record this ldr, and fix later.
-      label->link_to(buffer_->getSize(), ThumbPseudoLabel::kThumb2LiteralLdr);
-      t2_ldr(rt, MemOperand(pc, 0));
-    }
-  }
-
-  void AlignThumbNop() {
-    addr32_t pc = this->GetCodeBuffer()->getSize() + (addr32_t)GetRealizedAddress();
-    if (pc % Thumb2_INST_LEN) {
-      t1_nop();
-    } else {
-    }
-  }
-
-  // ================================================================
-  // ThumbRelocLabelEntry
-
-  void ThumbPseudoBind(ThumbPseudoLabel *label) {
-    if (label->is_unused() == true) {
-      const addr32_t bound_pc = buffer_->getSize();
-      label->bind_to(bound_pc);
-    }
-    // If some instructions have been wrote, before the label bound, we need link these `confused` instructions
-    if (label->has_confused_instructions()) {
-      label->link_confused_instructions(this->GetCodeBuffer());
-    }
-  }
-
-  void RelocBindFixup(ThumbRelocLabelEntry *label) {
-    buffer_->RewriteAddr(label->pos(), label->data());
-  }
-
-  void RelocBind() {
-    if (data_labels_ == NULL)
-      return;
-    for (size_t i = 0; i < data_labels_->getCount(); i++) {
-      ThumbRelocLabelEntry *label = (ThumbRelocLabelEntry *)data_labels_->getObject(i);
-      ThumbPseudoBind(label);
-      EmitAddress(label->data());
-      DLOG(0, "[thumb label data] %p", label->data());
-    }
-  }
-
-  void AppendRelocLabelEntry(ThumbRelocLabelEntry *label) {
-    if (data_labels_ == NULL) {
-      data_labels_ = new LiteMutableArray(8);
-    }
-    data_labels_->pushObject((LiteObject *)label);
-  }
-
-  LiteMutableArray *GetLabels() {
-    return data_labels_;
-  }
-
-private:
-  LiteMutableArray *data_labels_;
-};
-
-#if 0
-void GenRelocateCodeAndBranch(void *buffer, AssemblyCodeChunk *origin, AssemblyCodeChunk *relocated);
-#endif
-
-} // namespace arm
-} // namespace zz
-
-#endif
diff --git a/loader/dobby/source/InstructionRelocation/arm64/ARM64InstructionRelocation.cc b/loader/dobby/source/InstructionRelocation/arm64/ARM64InstructionRelocation.cc
deleted file mode 100644
index f116b7bf..00000000
--- a/loader/dobby/source/InstructionRelocation/arm64/ARM64InstructionRelocation.cc
+++ /dev/null
@@ -1,318 +0,0 @@
-#include "platform_macro.h"
-#if defined(TARGET_ARCH_ARM64)
-
-#include "InstructionRelocation/arm64/ARM64InstructionRelocation.h"
-
-#include "dobby_internal.h"
-
-#include "core/arch/arm64/registers-arm64.h"
-#include "core/modules/assembler/assembler-arm64.h"
-#include "core/modules/codegen/codegen-arm64.h"
-
-using namespace zz::arm64;
-
-// Compare and branch.
-enum CompareBranchOp {
-  CompareBranchFixed = 0x34000000,
-  CompareBranchFixedMask = 0x7E000000,
-  CompareBranchMask = 0xFF000000,
-};
-
-// Conditional branch.
-enum ConditionalBranchOp {
-  ConditionalBranchFixed = 0x54000000,
-  ConditionalBranchFixedMask = 0xFE000000,
-  ConditionalBranchMask = 0xFF000010,
-};
-
-// Test and branch.
-enum TestBranchOp {
-  TestBranchFixed = 0x36000000,
-  TestBranchFixedMask = 0x7E000000,
-  TestBranchMask = 0x7F000000,
-  TBZ = TestBranchFixed | 0x00000000,
-  TBNZ = TestBranchFixed | 0x01000000
-};
-
-static inline int64_t SignExtend(unsigned long x, int M, int N) {
-#if 0
-  char sign_bit      = bit(x, M - 1);
-  unsigned long sign_mask = 0 - sign_bit;
-  x |= ((sign_mask >> M) << M);
-#else
-  x = (long)(x << (N - M)) >> (N - M);
-#endif
-  return x;
-}
-
-#if 0
-static inline unsigned long set_bit(obj, st, unsigned long bit) {
-  return (((~(1 << st)) & obj) | (bit << st));
-}
-static inline unsigned long set_bits(obj, st, fn, unsigned long bits) {
-  return (((~(submask(fn - st) << st)) & obj) | (bits << st));
-}
-#endif
-
-static inline int64_t decode_imm14_offset(uint32_t instr) {
-  int64_t offset;
-  {
-    int64_t imm19 = bits(instr, 5, 18);
-    offset = (imm19 << 2);
-  }
-  offset = SignExtend(offset, 2 + 14, 64);
-  return offset;
-}
-
-static inline int64_t decode_imm19_offset(uint32_t instr) {
-  int64_t offset;
-  {
-    int64_t imm19 = bits(instr, 5, 23);
-    offset = (imm19 << 2);
-  }
-  offset = SignExtend(offset, 2 + 19, 64);
-  return offset;
-}
-
-static inline int64_t decode_imm26_offset(uint32_t instr) {
-  int64_t offset;
-  {
-    int64_t imm26 = bits(instr, 0, 25);
-    offset = (imm26 << 2);
-  }
-  offset = SignExtend(offset, 2 + 26, 64);
-  return offset;
-}
-
-static inline int64_t decode_immhi_immlo_offset(uint32_t instr) {
-  typedef uint32_t instr_t;
-  struct {
-    instr_t Rd : 5;      // Destination register
-    instr_t immhi : 19;  // 19-bit upper immediate
-    instr_t dummy_0 : 5; // Must be 10000 == 0x10
-    instr_t immlo : 2;   // 2-bit lower immediate
-    instr_t op : 1;      // 0 = ADR, 1 = ADRP
-  } instr_decode;
-
-  *(instr_t *)&instr_decode = instr;
-
-  int64_t imm = instr_decode.immlo + (instr_decode.immhi << 2);
-  imm = SignExtend(imm, 2 + 19, 64);
-  return imm;
-}
-
-static inline int64_t decode_immhi_immlo_zero12_offset(uint32_t instr) {
-  int64_t imm = decode_immhi_immlo_offset(instr);
-  imm = imm << 12;
-  return imm;
-}
-
-static inline int decode_rt(uint32_t instr) {
-  return bits(instr, 0, 4);
-}
-
-static inline int decode_rd(uint32_t instr) {
-  return bits(instr, 0, 4);
-}
-
-#if defined(DOBBY_DEBUG)
-#define debug_nop() _ nop()
-#else
-#define debug_nop()
-#endif
-
-void GenRelocateCodeAndBranch(void *buffer, AssemblyCodeChunk *origin, AssemblyCodeChunk *relocated) {
-  TurboAssembler turbo_assembler_(0);
-#define _ turbo_assembler_.
-
-  uint64_t curr_orig_pc = origin->raw_instruction_start();
-  uint64_t curr_relo_pc = relocated->raw_instruction_start();
-
-  addr_t buffer_cursor = (addr_t)buffer;
-  arm64_inst_t instr = *(arm64_inst_t *)buffer_cursor;
-
-  int predefined_relocate_size = origin->raw_instruction_size();
-
-  while (buffer_cursor < ((addr_t)buffer + predefined_relocate_size)) {
-    int last_relo_offset = turbo_assembler_.GetCodeBuffer()->getSize();
-
-    if ((instr & LoadRegLiteralFixedMask) == LoadRegLiteralFixed) { // ldr x0, #16
-      int rt = decode_rt(instr);
-      char opc = bits(instr, 30, 31);
-      addr64_t memory_address = decode_imm19_offset(instr) + curr_orig_pc;
-
-#define MEM(reg, offset) MemOperand(reg, offset)
-      debug_nop(); // for debug
-      {
-        _ Mov(TMP_REG_0, memory_address); // should we replace with `Ldr` to set  X17 ?
-        if (opc == 0b00)
-          _ ldr(W(rt), MEM(TMP_REG_0, 0));
-        else if (opc == 0b01)
-          _ ldr(X(rt), MEM(TMP_REG_0, 0));
-        else {
-          UNIMPLEMENTED();
-        }
-      }
-      debug_nop();
-    } else if ((instr & PCRelAddressingFixedMask) == PCRelAddressingFixed) {
-      int rd = decode_rd(instr);
-
-      int64_t imm = 0;
-      addr64_t runtime_address = 0;
-      if ((instr & PCRelAddressingMask) == ADR) {
-        imm = decode_immhi_immlo_offset(instr);
-        runtime_address = curr_orig_pc + imm;
-      } else {
-        imm = decode_immhi_immlo_zero12_offset(instr);
-        runtime_address = ALIGN_FLOOR(curr_orig_pc, (1 << 12)) + imm;
-      }
-
-      /* output Mov */
-      debug_nop();
-      {
-        _ Mov(X(rd), runtime_address); // should we replace with `Ldr` to set  X17 ?
-      }
-      debug_nop();
-
-    } else if ((instr & UnconditionalBranchFixedMask) == UnconditionalBranchFixed) { // b xxx
-      addr_t branch_address = decode_imm26_offset(instr) + curr_orig_pc;
-      RelocLabelEntry *branchAddressLabel = new RelocLabelEntry(branch_address);
-      _ AppendRelocLabelEntry(branchAddressLabel);
-
-      debug_nop();
-      {
-        _ Ldr(TMP_REG_0, branchAddressLabel); // should we replace with `Mov` to set  X17 ?
-        if ((instr & UnconditionalBranchMask) == BL) {
-          _ blr(TMP_REG_0);
-        } else {
-          _ br(TMP_REG_0);
-        }
-      }
-      debug_nop();
-    } else if ((instr & TestBranchFixedMask) == TestBranchFixed) { // tbz, tbnz
-      addr64_t branch_address = decode_imm14_offset(instr) + curr_orig_pc;
-      RelocLabelEntry *branchAddressLabel = new RelocLabelEntry(branch_address);
-      _ AppendRelocLabelEntry(branchAddressLabel);
-
-      arm64_inst_t branch_instr = instr;
-
-      char op = bit(instr, 24);
-      op = op ^ 1;
-      set_bit(branch_instr, 24, op);
-
-      int64_t offset = 4 * 3; // branch_instr; ldr x17, #label; br x17
-      uint32_t imm14 = offset >> 2;
-      set_bits(branch_instr, 5, 18, imm14);
-
-      debug_nop();
-      {
-        _ Emit(branch_instr);
-        {
-          _ Ldr(TMP_REG_0, branchAddressLabel); // should we replace with `Mov` to set  X17 ?
-          _ br(TMP_REG_0);
-        }
-      }
-      debug_nop();
-
-    } else if ((instr & CompareBranchFixedMask) == CompareBranchFixed) { // cbz cbnz
-      addr64_t branch_address = decode_imm19_offset(instr) + curr_orig_pc;
-
-      arm64_inst_t branch_instr = instr;
-
-      char op = bit(instr, 24);
-      op = op ^ 1;
-      set_bit(branch_instr, 24, op);
-
-      int64_t offset = 4 * 3;
-      uint32_t imm19 = offset >> 2;
-      set_bits(branch_instr, 5, 23, imm19);
-
-      RelocLabelEntry *branchAddressLabel = new RelocLabelEntry(branch_address);
-      _ AppendRelocLabelEntry(branchAddressLabel);
-
-      debug_nop();
-      {
-        _ Emit(branch_instr);
-        {
-          _ Ldr(TMP_REG_0, branchAddressLabel); // should we replace with `Mov` to set  X17 ?
-          _ br(TMP_REG_0);
-        }
-      }
-      debug_nop();
-    } else if ((instr & ConditionalBranchFixedMask) == ConditionalBranchFixed) { // b.cond
-      addr64_t branch_address = decode_imm19_offset(instr) + curr_orig_pc;
-
-      arm64_inst_t branch_instr = instr;
-
-      char cond = bits(instr, 0, 3);
-      cond = cond ^ 1;
-      set_bits(branch_instr, 0, 3, cond);
-
-      int64_t offset = 4 * 3;
-      uint32_t imm19 = offset >> 2;
-      set_bits(branch_instr, 5, 23, imm19);
-
-      RelocLabelEntry *branchAddressLabel = new RelocLabelEntry(branch_address);
-      _ AppendRelocLabelEntry(branchAddressLabel);
-
-      debug_nop();
-      {
-        _ Emit(branch_instr);
-        {
-          _ Ldr(TMP_REG_0, branchAddressLabel); // should we replace with `Mov` to set  X17 ?
-          _ br(TMP_REG_0);
-        }
-      }
-      debug_nop();
-    } else {
-      // origin write the instruction bytes
-      _ Emit(instr);
-    }
-
-    // Move to next instruction
-    curr_orig_pc += 4;
-    buffer_cursor += 4;
-
-#if 0
-    {
-      // 1 orignal instrution => ? relocated instruction
-      int relo_offset = turbo_assembler_.GetCodeBuffer()->getSize();
-      int relo_len    = relo_offset - last_relo_offset;
-      curr_relo_pc += relo_len;
-    }
-#endif
-
-    curr_relo_pc = relocated->raw_instruction_start() + turbo_assembler_.pc_offset();
-
-    instr = *(arm64_inst_t *)buffer_cursor;
-  }
-
-#if 0
-     // check branch in relocate-code range
-    {
-      for (size_t i = 0; i < data_labels->getCount(); i++) {
-        RelocLabelEntry *pseudoLabel = (RelocLabelEntry *)data_labels->getObject(i);
-        if (pseudoLabel->address == curr_orig_pc) {
-          FATAL("label(%p) in relo code %p, please enable b-xxx branch plugin.", pseudoLabel->address, curr_orig_pc);
-        }
-      }
-    }
-#endif
-
-  // TODO: if last instr is unlink branch, skip
-  // Branch to the rest of instructions
-  CodeGen codegen(&turbo_assembler_);
-  codegen.LiteralLdrBranch(curr_orig_pc);
-
-  _ RelocBind();
-
-  // Generate executable code
-  {
-    AssemblyCodeChunk *code = NULL;
-    code = AssemblyCodeBuilder::FinalizeFromTurboAssembler(&turbo_assembler_);
-    relocated->re_init_region_range(code->raw_instruction_start(), code->raw_instruction_size());
-    delete code;
-  }
-}
-
-#endif
diff --git a/loader/dobby/source/InstructionRelocation/arm64/ARM64InstructionRelocation.h b/loader/dobby/source/InstructionRelocation/arm64/ARM64InstructionRelocation.h
deleted file mode 100644
index 93396631..00000000
--- a/loader/dobby/source/InstructionRelocation/arm64/ARM64InstructionRelocation.h
+++ /dev/null
@@ -1,16 +0,0 @@
-#ifndef INSTRUCTION_RELOCATION_ARM64_H
-#define INSTRUCTION_RELOCATION_ARM64_H
-
-#include "dobby_internal.h"
-
-#include "core/arch/arm64/constants-arm64.h"
-
-#if 0
-namespace zz {
-namespace arm64 {
-void GenRelocateCodeAndBranch(void *buffer, AssemblyCodeChunk *origin, AssemblyCodeChunk *relocated);
-} // namespace arm64
-} // namespace zz
-#endif
-
-#endif
diff --git a/loader/dobby/source/InstructionRelocation/arm64/ARM64PCLiteralInstructionTable.h b/loader/dobby/source/InstructionRelocation/arm64/ARM64PCLiteralInstructionTable.h
deleted file mode 100644
index 6d974321..00000000
--- a/loader/dobby/source/InstructionRelocation/arm64/ARM64PCLiteralInstructionTable.h
+++ /dev/null
@@ -1,8 +0,0 @@
-//
-// Created by jmpews on 2019/1/26.
-//
-
-#ifndef ARM64_PC_LITERAL_INSTRUCTION_TABLE_H
-#define ARM64_PC_LITERAL_INSTRUCTION_TABLE_H
-
-#endif
diff --git a/loader/dobby/source/InstructionRelocation/x64/X64InstructionRelocation.cc b/loader/dobby/source/InstructionRelocation/x64/X64InstructionRelocation.cc
deleted file mode 100644
index fd5543b0..00000000
--- a/loader/dobby/source/InstructionRelocation/x64/X64InstructionRelocation.cc
+++ /dev/null
@@ -1,162 +0,0 @@
-#include "platform_macro.h"
-#if defined(TARGET_ARCH_X64)
-
-#include "InstructionRelocation/x64/X64InstructionRelocation.h"
-
-#include <string.h>
-
-#include "dobby_internal.h"
-
-#include "InstructionRelocation/x86/x86_insn_decode/x86_insn_decode.h"
-
-#include "core/arch/x64/registers-x64.h"
-#include "core/modules/assembler/assembler-x64.h"
-#include "core/modules/codegen/codegen-x64.h"
-
-using namespace zz::x64;
-
-static int GenRelocateCodeFixed(void *buffer, AssemblyCodeChunk *origin, AssemblyCodeChunk *relocated) {
-  TurboAssembler turbo_assembler_(0);
-  // Set fixed executable code chunk address
-  turbo_assembler_.SetRealizedAddress((void *)relocated->raw_instruction_start());
-#define _ turbo_assembler_.
-#define __ turbo_assembler_.GetCodeBuffer()->
-
-  addr64_t curr_orig_ip = origin->raw_instruction_start();
-  addr64_t curr_relo_ip = relocated->raw_instruction_start();
-
-  addr_t buffer_cursor = (addr_t)buffer;
-
-  x86_options_t conf = {0};
-  conf.mode = 64;
-
-  int predefined_relocate_size = origin->raw_instruction_size();
-
-  while ((buffer_cursor < ((addr_t)buffer + predefined_relocate_size))) {
-    int last_relo_offset = turbo_assembler_.GetCodeBuffer()->getSize();
-
-    x86_insn_decode_t insn = {0};
-    memset(&insn, 0, sizeof(insn));
-    // decode x86 insn
-    x86_insn_decode(&insn, (uint8_t *)buffer_cursor, &conf);
-
-    if (insn.primary_opcode >= 0x70 && insn.primary_opcode <= 0x7F) { // jc rel8
-      DLOG(0, "[x86 relo] jc rel8, %p", buffer_cursor);
-
-      int8_t orig_offset = insn.immediate;
-      int new_offset = (int)(curr_orig_ip + orig_offset - curr_relo_ip);
-      uint8_t opcode = 0x80 | (insn.primary_opcode & 0x0f);
-
-      __ Emit8(0x0F);
-      __ Emit8(opcode);
-      __ Emit32(new_offset);
-    } else if (insn.primary_opcode == 0xEB) { // jmp rel8
-      DLOG(0, "[x86 relo] jmp rel8, %p", buffer_cursor);
-
-      int8_t orig_offset = insn.immediate;
-      int8_t new_offset = (int8_t)(curr_orig_ip + orig_offset - curr_relo_ip);
-
-      __ Emit8(0xE9);
-      __ Emit32(new_offset);
-    } else if ((insn.flags & X86_INSN_DECODE_FLAG_IP_RELATIVE) && (insn.operands[1].mem.base == RIP)) { // RIP
-      DLOG(0, "[x86 relo] rip, %p", buffer_cursor);
-
-      // dword orig_disp = *(dword *)(buffer_cursor + insn.operands[1].mem.disp);
-      dword orig_disp = insn.operands[1].mem.disp;
-      dword new_disp = (dword)(curr_orig_ip + orig_disp - curr_relo_ip);
-
-      __ EmitBuffer((void *)buffer_cursor, insn.displacement_offset);
-      __ Emit32(new_disp);
-      if (insn.immediate_offset) {
-        __ EmitBuffer((void *)(buffer_cursor + insn.immediate_offset), insn.length - insn.immediate_offset);
-      }
-    } else if (insn.primary_opcode == 0xE8 || insn.primary_opcode == 0xE9) { // call or jmp rel32
-      DLOG(0, "[x86 relo] jmp or call rel32, %p", buffer_cursor);
-
-      dword orig_offset = insn.immediate;
-      dword offset = (dword)(curr_orig_ip + orig_offset - curr_relo_ip);
-
-      __ EmitBuffer((void *)buffer_cursor, insn.immediate_offset);
-      __ Emit32(offset);
-    } else if (insn.primary_opcode >= 0xE0 && insn.primary_opcode <= 0xE2) { // LOOPNZ/LOOPZ/LOOP/JECXZ
-      // LOOP/LOOPcc
-      UNIMPLEMENTED();
-    } else if (insn.primary_opcode == 0xE3) {
-      // JCXZ JCEXZ JCRXZ
-      UNIMPLEMENTED();
-    } else {
-      // Emit the origin instrution
-      __ EmitBuffer((void *)buffer_cursor, insn.length);
-    }
-
-    // go next
-    curr_orig_ip += insn.length;
-    buffer_cursor += insn.length;
-
-#if 0
-    {
-      // 1 orignal instrution => ? relocated instruction
-      int relo_offset = turbo_assembler_.GetCodeBuffer()->getSize();
-      int relo_len    = relo_offset - last_relo_offset;
-      curr_relo_ip += relo_len;
-    }
-#endif
-    curr_relo_ip = relocated->raw_instruction_start() + turbo_assembler_.ip_offset();
-  }
-
-  // jmp to the origin rest instructions
-  CodeGen codegen(&turbo_assembler_);
-  // TODO: 6 == jmp [RIP + disp32] instruction size
-  addr64_t stub_addr = curr_relo_ip + 6;
-  codegen.JmpNearIndirect(stub_addr);
-  turbo_assembler_.GetCodeBuffer()->Emit64(curr_orig_ip);
-
-  // update origin
-  int new_origin_len = curr_orig_ip - origin->raw_instruction_start();
-  origin->re_init_region_range(origin->raw_instruction_start(), new_origin_len);
-
-  int relo_len = turbo_assembler_.GetCodeBuffer()->getSize();
-  if (relo_len > relocated->raw_instruction_size()) {
-    DLOG(0, "pre-alloc code chunk not enough");
-    return RT_FAILED;
-  }
-
-  // Generate executable code
-  {
-    AssemblyCodeChunk *code = NULL;
-    code = AssemblyCodeBuilder::FinalizeFromTurboAssembler(&turbo_assembler_);
-    delete code;
-  }
-
-  return RT_SUCCESS;
-}
-
-void GenRelocateCodeAndBranch(void *buffer, AssemblyCodeChunk *origin, AssemblyCodeChunk *relocated) {
-  // pre-alloc code chunk
-  AssemblyCodeChunk *cchunk = NULL;
-
-  int relo_code_chunk_size = 32;
-  const int chunk_size_step = 16;
-
-x64_try_again:
-  if (relocated->raw_instruction_start() == 0) {
-    cchunk = MemoryArena::AllocateCodeChunk(relo_code_chunk_size);
-    if (cchunk == nullptr) {
-      return;
-    }
-    relocated->re_init_region_range((addr_t)cchunk->address, (int)cchunk->length);
-  }
-
-  int ret = GenRelocateCodeFixed(buffer, origin, relocated);
-  if (ret != RT_SUCCESS) {
-    // free the cchunk
-    MemoryArena::Destroy(cchunk);
-
-    relo_code_chunk_size += chunk_size_step;
-    relocated->re_init_region_range(0, 0);
-
-    goto x64_try_again;
-  }
-}
-
-#endif
diff --git a/loader/dobby/source/InstructionRelocation/x64/X64InstructionRelocation.h b/loader/dobby/source/InstructionRelocation/x64/X64InstructionRelocation.h
deleted file mode 100644
index ceff7777..00000000
--- a/loader/dobby/source/InstructionRelocation/x64/X64InstructionRelocation.h
+++ /dev/null
@@ -1,10 +0,0 @@
-#ifndef INSTRUCTION_RELOCATION_X64_H
-#define INSTRUCTION_RELOCATION_X64_H
-
-#include "common_header.h"
-
-#include "core/arch/x64/constants-x64.h"
-
-#include "MemoryAllocator/AssemblyCodeBuilder.h"
-
-#endif
\ No newline at end of file
diff --git a/loader/dobby/source/InstructionRelocation/x86/X86InstructionRelocation.cc b/loader/dobby/source/InstructionRelocation/x86/X86InstructionRelocation.cc
deleted file mode 100644
index f887a8ac..00000000
--- a/loader/dobby/source/InstructionRelocation/x86/X86InstructionRelocation.cc
+++ /dev/null
@@ -1,148 +0,0 @@
-#include "platform_macro.h"
-#if defined(TARGET_ARCH_IA32)
-
-#include "InstructionRelocation/x86//X86InstructionRelocation.h"
-
-#include <string.h>
-
-#include "dobby_internal.h"
-
-#include "InstructionRelocation/x86/x86_insn_decode/x86_insn_decode.h"
-
-#include "core/arch/x86/registers-x86.h"
-#include "core/modules/assembler/assembler-ia32.h"
-#include "core/modules/codegen/codegen-ia32.h"
-
-using namespace zz::x86;
-
-static int GenRelocateCodeFixed(void *buffer, AssemblyCodeChunk *origin, AssemblyCodeChunk *relocated) {
-  TurboAssembler turbo_assembler_(0);
-  // Set fixed executable code chunk address
-  turbo_assembler_.SetRealizedAddress((void *)relocated->raw_instruction_start());
-#define _ turbo_assembler_.
-#define __ turbo_assembler_.GetCodeBuffer()->
-
-  addr32_t curr_orig_ip = origin->raw_instruction_start();
-  addr32_t curr_relo_ip = relocated->raw_instruction_start();
-
-  addr_t buffer_cursor = (addr_t)buffer;
-
-  x86_options_t conf = {0};
-  conf.mode = 32;
-
-  int predefined_relocate_size = origin->raw_instruction_size();
-
-  while ((buffer_cursor < ((addr_t)buffer + predefined_relocate_size))) {
-    int last_relo_offset = turbo_assembler_.GetCodeBuffer()->getSize();
-
-    x86_insn_decode_t insn = {0};
-    memset(&insn, 0, sizeof(insn));
-    // decode x86 insn
-    x86_insn_decode(&insn, (uint8_t *)buffer_cursor, &conf);
-
-    if (insn.primary_opcode >= 0x70 && insn.primary_opcode <= 0x7F) { // jc rel8
-      DLOG(0, "[x86 relo] jc rel8, %p", buffer_cursor);
-
-      int8_t orig_offset = (int8_t)insn.immediate;
-      int new_offset = (int)(curr_orig_ip + orig_offset - curr_relo_ip);
-      uint8_t opcode = 0x80 | (insn.primary_opcode & 0x0f);
-
-      __ Emit8(0x0F);
-      __ Emit8(opcode);
-      __ Emit32(new_offset);
-    } else if (insn.primary_opcode == 0xEB) { // jmp rel8
-      DLOG(0, "[x86 relo] jmp rel8, %p", buffer_cursor);
-
-      int8_t orig_offset = (int8_t)insn.immediate;
-      int8_t new_offset = (int8_t)(curr_orig_ip + orig_offset - curr_relo_ip);
-
-      __ Emit8(0xE9);
-      __ Emit32(new_offset);
-    } else if (insn.primary_opcode == 0xE8 || insn.primary_opcode == 0xE9) { // call or jmp rel32
-      DLOG(0, "[x86 relo] jmp or call rel32, %p", buffer_cursor);
-
-      dword orig_offset = (dword)insn.immediate;
-      dword offset = (dword)(curr_orig_ip + orig_offset - curr_relo_ip);
-
-      __ EmitBuffer((void *)buffer_cursor, insn.immediate_offset);
-      __ Emit32(offset);
-    } else if (insn.primary_opcode >= 0xE0 && insn.primary_opcode <= 0xE2) { // LOOPNZ/LOOPZ/LOOP/JECXZ
-      // LOOP/LOOPcc
-      UNIMPLEMENTED();
-    } else if (insn.primary_opcode == 0xE3) {
-      // JCXZ JCEXZ JCRXZ
-      UNIMPLEMENTED();
-    } else {
-      // Emit the origin instrution
-      __ EmitBuffer((void *)buffer_cursor, insn.length);
-    }
-
-    // go next
-    curr_orig_ip += insn.length;
-    buffer_cursor += insn.length;
-
-#if 0
-    {
-      // 1 orignal instrution => ? relocated instruction
-      int relo_offset = turbo_assembler_.GetCodeBuffer()->getSize();
-      int relo_len    = relo_offset - last_relo_offset;
-      curr_relo_ip += relo_len;
-    }
-#endif
-    curr_relo_ip = relocated->raw_instruction_start() + turbo_assembler_.ip_offset();
-  }
-
-  // jmp to the origin rest instructions
-  CodeGen codegen(&turbo_assembler_);
-  addr64_t stub_addr = curr_relo_ip + 6;
-  codegen.JmpNear(curr_orig_ip);
-
-  // update origin
-  int new_origin_len = curr_orig_ip - origin->raw_instruction_start();
-  origin->re_init_region_range(origin->raw_instruction_start(), new_origin_len);
-
-  int relo_len = turbo_assembler_.GetCodeBuffer()->getSize();
-  if (relo_len > (int)relocated->raw_instruction_size()) {
-    DLOG(0, "pre-alloc code chunk not enough");
-    return RT_FAILED;
-  }
-
-  // Generate executable code
-  {
-    AssemblyCodeChunk *code = NULL;
-    code = AssemblyCodeBuilder::FinalizeFromTurboAssembler(&turbo_assembler_);
-    delete code;
-  }
-
-  return RT_SUCCESS;
-}
-
-void GenRelocateCodeAndBranch(void *buffer, AssemblyCodeChunk *origin, AssemblyCodeChunk *relocated) {
-  // pre-alloc code chunk
-  AssemblyCodeChunk *cchunk = NULL;
-
-  int relo_code_chunk_size = 32;
-  const int chunk_size_step = 16;
-
-x86_try_again:
-  if (relocated->raw_instruction_start() == 0) {
-    cchunk = MemoryArena::AllocateCodeChunk(relo_code_chunk_size);
-    if (cchunk == nullptr) {
-      return;
-    }
-    relocated->re_init_region_range((addr_t)cchunk->address, (int)cchunk->length);
-  }
-
-  int ret = GenRelocateCodeFixed(buffer, origin, relocated);
-  if (ret != RT_SUCCESS) {
-    // free the cchunk
-    MemoryArena::Destroy(cchunk);
-
-    relo_code_chunk_size += chunk_size_step;
-    relocated->re_init_region_range(0, 0);
-
-    goto x86_try_again;
-  }
-}
-
-#endif
diff --git a/loader/dobby/source/InstructionRelocation/x86/X86InstructionRelocation.h b/loader/dobby/source/InstructionRelocation/x86/X86InstructionRelocation.h
deleted file mode 100644
index 9dea6628..00000000
--- a/loader/dobby/source/InstructionRelocation/x86/X86InstructionRelocation.h
+++ /dev/null
@@ -1,10 +0,0 @@
-#ifndef INSTRUCTION_RELOCATION_X64_H
-#define INSTRUCTION_RELOCATION_X64_H
-
-#include "common_header.h"
-
-#include "core/arch/x86/constants-x86.h"
-
-#include "MemoryAllocator/AssemblyCodeBuilder.h"
-
-#endif
\ No newline at end of file
diff --git a/loader/dobby/source/InstructionRelocation/x86/deprecated/Ia32Disassembler.cc b/loader/dobby/source/InstructionRelocation/x86/deprecated/Ia32Disassembler.cc
deleted file mode 100644
index e9774d12..00000000
--- a/loader/dobby/source/InstructionRelocation/x86/deprecated/Ia32Disassembler.cc
+++ /dev/null
@@ -1,388 +0,0 @@
-#include <stdio.h>
-#include <stdint.h>
-
-#include "logging/logging.h"
-
-enum SegmentPrefix {
-  kCs = 0x2e,
-  kSs = 0x36,
-  kDs = 0x3e,
-  kEs = 0x26,
-  kFs = 0x64,
-  kGs = 0x65,
-};
-
-bool supports_rex_ = false;
-
-void DecodeInstruction(uint8_t *instr) {
-  bool have_prefixes = true;
-  uint8_t prefix[4] = {0, 0, 0, 0};
-
-  // decode legacy prefix
-  do {
-    switch (*instr) {
-      // Group 1 - lock and repeat prefixes:
-    case 0xF0:
-    case 0xF2:
-    case 0xF3:
-      prefix[0] = *instr;
-      break;
-      // Group 2 - segment override prefixes:
-    case kCs:
-    case kSs:
-    case kDs:
-    case kEs:
-    case kFs:
-    case kGs:
-      prefix[1] = *instr;
-      break;
-      // Group 3 - operand size override:
-    case 0x66:
-      prefix[2] = *instr;
-      break;
-      // Group 4 - address size override:
-    case 0x67:
-      prefix[3] = *instr;
-      break;
-    default:
-      have_prefixes = false;
-      break;
-    }
-    if (have_prefixes) {
-      instr++;
-    }
-  } while (have_prefixes);
-
-  // x64 rex
-  uint8_t rex = (supports_rex_ && (*instr >= 0x40) && (*instr <= 0x4F)) ? *instr : 0;
-  if (rex != 0) {
-    instr++;
-  }
-
-  bool has_modrm = false;
-  bool reg_is_opcode = false;
-
-  size_t immediate_bytes = 0;
-
-#define OpEn_MR                                                                                                        \
-  do {                                                                                                                 \
-    has_modrm = true;                                                                                                  \
-  } while (0);                                                                                                         \
-  break;
-
-#define OpEn_RM                                                                                                        \
-  do {                                                                                                                 \
-    has_modrm = true;                                                                                                  \
-  } while (0);                                                                                                         \
-  break;
-
-#define OpEn_I(immediate_size)                                                                                         \
-  do {                                                                                                                 \
-    immediate_bytes = immediate_size;                                                                                  \
-  } while (0);                                                                                                         \
-  break;
-
-#define OpEn_RMI(immediate_size)                                                                                       \
-  do {                                                                                                                 \
-    immediate_bytes = immediate_size;                                                                                  \
-  } while (0);                                                                                                         \
-  break;
-
-#define OpEn_O                                                                                                         \
-  do {                                                                                                                 \
-    reg_is_opcode = true;                                                                                              \
-  } while (0);                                                                                                         \
-  break;
-
-#define OpEn_D                                                                                                         \
-  do {                                                                                                                 \
-    reg_is_opcode = true;                                                                                              \
-  } while (0);                                                                                                         \
-  break;
-
-#define OpEn_ZO                                                                                                        \
-  do {                                                                                                                 \
-    reg_is_opcode = true;                                                                                              \
-  } while (0);                                                                                                         \
-  break;
-
-#define Op_Prefix                                                                                                      \
-  do {                                                                                                                 \
-    reg_is_opcode = true;                                                                                              \
-  } while (0);                                                                                                         \
-  break;
-
-#define UnImplOpcode                                                                                                   \
-  do {                                                                                                                 \
-    DLOG(0, "opcode unreachable");                                                                                     \
-  } while (0);                                                                                                         \
-  break;
-
-  typedef enum {
-    MR,
-  } OpEnTy;
-
-  // decode opcode
-  switch (*instr) {
-  case 0x00:
-    OpEn_MR;
-  case 0x01:
-    OpEn_MR;
-  case 0x02:
-    OpEn_RM;
-  case 0x03:
-    OpEn_RM;
-  case 0x04:
-    OpEn_I(8);
-  case 0x05:
-    OpEn_I(16 | 32);
-
-  case 0x06:
-  case 0x07:
-    UnImplOpcode;
-
-  case 0x08:
-    OpEn_MR;
-  case 0x09:
-    OpEn_MR;
-  case 0x0a:
-    OpEn_RM;
-  case 0x0b:
-    OpEn_RM;
-  case 0x0c:
-    OpEn_I(8);
-  case 0x0d:
-    OpEn_I(16 | 32);
-
-  case 0x0e:
-  case 0x0f:
-    UnImplOpcode;
-
-  case 0x10:
-    OpEn_MR;
-  case 0x11:
-    OpEn_MR;
-  case 0x12:
-    OpEn_RM;
-  case 0x13:
-    OpEn_RM;
-  case 0x14:
-    OpEn_I(8);
-  case 0x15:
-    OpEn_I(16 | 32);
-
-  case 0x16:
-  case 0x17:
-    UnImplOpcode;
-
-  case 0x18:
-    OpEn_MR;
-  case 0x19:
-    OpEn_MR;
-  case 0x1a:
-    OpEn_RM;
-  case 0x1b:
-    OpEn_RM;
-  case 0x1c:
-    OpEn_I(8);
-  case 0x1d:
-    OpEn_I(16 | 32);
-
-  case 0x1e:
-  case 0x1f:
-    UnImplOpcode;
-
-  case 0x20:
-    OpEn_MR;
-  case 0x21:
-    OpEn_MR;
-  case 0x22:
-    OpEn_RM;
-  case 0x23:
-    OpEn_RM;
-  case 0x24:
-    OpEn_I(8);
-  case 0x25:
-    OpEn_I(16 | 32);
-
-  case 0x26:
-  case 0x27:
-    UnImplOpcode;
-
-  case 0x28:
-    OpEn_MR;
-  case 0x29:
-    OpEn_MR;
-  case 0x2a:
-    OpEn_RM;
-  case 0x2b:
-    OpEn_RM;
-  case 0x2c:
-    OpEn_I(8);
-  case 0x2d:
-    OpEn_I(16 | 32);
-
-  case 0x2e:
-  case 0x2f:
-    UnImplOpcode;
-
-  case 0x30:
-    OpEn_MR;
-  case 0x31:
-    OpEn_MR;
-  case 0x32:
-    OpEn_RM;
-  case 0x33:
-    OpEn_RM;
-  case 0x34:
-    OpEn_I(8);
-  case 0x35:
-    OpEn_I(16 | 32);
-
-  case 0x36:
-  case 0x37:
-    UnImplOpcode;
-
-  case 0x38:
-    OpEn_MR;
-  case 0x39:
-    OpEn_MR;
-  case 0x3a:
-    OpEn_RM;
-  case 0x3b:
-    OpEn_RM;
-  case 0x3c:
-    OpEn_I(8);
-  case 0x3d:
-    OpEn_I(16 | 32);
-
-  case 0x40:
-  case 0x41:
-  case 0x42:
-  case 0x43:
-  case 0x44:
-  case 0x45:
-  case 0x46:
-  case 0x47:
-  case 0x48:
-  case 0x49:
-  case 0x4a:
-  case 0x4b:
-  case 0x4c:
-  case 0x4d:
-  case 0x4e:
-  case 0x4f:
-    UnImplOpcode;
-
-  case 0x50:
-  case 0x51:
-  case 0x52:
-  case 0x53:
-  case 0x54:
-  case 0x55:
-  case 0x56:
-  case 0x57:
-  case 0x58:
-  case 0x59:
-  case 0x5A:
-  case 0x5B:
-  case 0x5C:
-  case 0x5D:
-  case 0x5E:
-  case 0x5F:
-    OpEn_O;
-
-  case 0x60:
-  case 0x61:
-  case 0x62:
-    UnImplOpcode;
-
-  case 0x63:
-    if ((rex & REX_W) != 0) {
-      OpEn_RM;
-    };
-    break;
-
-  case 0x64:
-  case 0x65:
-  case 0x66:
-  case 0x67:
-    Op_Prefix;
-
-  case 0x68:
-    OpEn_I(16 | 32);
-
-  case 0x69:
-    OpEn_RMI(16 | 32);
-
-  case 0x6a:
-    OpEn_I(8);
-
-  case 0x6b:
-    OpEn_RMI(8);
-
-  case 0x70:
-  case 0x71:
-  case 0x72:
-  case 0x73:
-  case 0x74:
-  case 0x75:
-  case 0x76:
-  case 0x77:
-  case 0x78:
-  case 0x79:
-  case 0x7A:
-  case 0x7B:
-  case 0x7C:
-  case 0x7D:
-  case 0x7E:
-  case 0x7F:
-    OpEn_D;
-
-  case 0x80:
-  case 0x81:
-  case 0x82:
-  case 0x83:
-  case 0x84:
-  case 0x85:
-    UnImplOpcode;
-
-  case 0x86:
-  case 0x87:
-    OpEn_RM;
-
-  case 0x88:
-  case 0x89:
-  case 0x8a:
-  case 0x8b:
-    OpEn_RM;
-
-  case 0x8c:
-  case 0x8d:
-  case 0x8e:
-  case 0x8f:
-  case 0x90:
-  case 0x91:
-  case 0x92:
-  case 0x93:
-  case 0x94:
-  case 0x95:
-  case 0x96:
-  case 0x97:
-  case 0x98:
-  case 0x99:
-  case 0x9a:
-  case 0x9b:
-  case 0x9c:
-    UnImplOpcode;
-
-  case 0x9d:
-    OpEn_ZO;
-
-  case 0x0f:
-    DecodeExtendedOpcode
-  }
-}
-
-void DecodeExtendedOpcode(uint8_t *instr) {
-}
\ No newline at end of file
diff --git a/loader/dobby/source/InstructionRelocation/x86/deprecated/X86OpcodoDecodeTable.cc b/loader/dobby/source/InstructionRelocation/x86/deprecated/X86OpcodoDecodeTable.cc
deleted file mode 100644
index 84bfad76..00000000
--- a/loader/dobby/source/InstructionRelocation/x86/deprecated/X86OpcodoDecodeTable.cc
+++ /dev/null
@@ -1,604 +0,0 @@
-#include "platform_macro.h"
-#if defined(TARGET_ARCH_IA32) || defined(TARGET_ARCH_X64)
-
-#include "./X86OpcodoDecodeTable.h"
-
-// clang-format on
-
-#define _xUnknownOpHanlder -1, -1, OpSz_0, ImmSz_0, _UnknownOpHanlder
-void _UnknownOpHanlder(InstrMnemonic *instr, addr_t p) {
-  // printf("Unknown Operand\n");
-  return;
-}
-
-#define _xInvalidOpHanlder -1, -1, OpSz_0, ImmSz_0, _InValidOpHanlder
-void _InValidOpHanlder(InstrMnemonic *instr, addr_t p) {
-  // printf("Invalid Operand\n");
-  return;
-}
-
-inline void _ContinueDispatch(InstrMnemonic *instr, addr_t p) {
-  OpcodeDecodeItem *item = &OpcodeDecodeTable[*(unsigned char *)p];
-  item->DecodeHandler(instr, p);
-}
-
-// ===== Decode LegacyPrefix and REXPrefix =====
-
-// clang-format off
-#define _xDecodePrefix_0F 1, OpEn_NONE, OpSz_0, ImmSz_0, _DecodeLegacyPrefix
-#define _xDecodePrefix_66 1, OpEn_NONE, OpSz_0, ImmSz_0, _DecodePrefix_66
-#define _xDecodePrefix_67 1, OpEn_NONE, OpSz_0, ImmSz_0, _DecodeLegacyPrefix
-#define _xDecodeREXPrefix 1, OpEn_NONE, OpSz_0, ImmSz_0, _DecodeREXPrefix
-#define _xDecodePrefix    1, OpEn_NONE, OpSz_0, ImmSz_0, _DecodeLegacyPrefix
-#define _xDecodeSegPrefix 1, OpEn_NONE, OpSz_0, ImmSz_0, _DecodeLegacyPrefix
-// clang-format on
-
-void _DecodeREXPrefix(InstrMnemonic *instr, addr_t p) {
-  instr->instr.REX = *(byte_t *)p;
-  instr->len++;
-  instr->OperandSz = OpSz_64;
-
-  _ContinueDispatch(instr, p + 1); // continue decode
-}
-
-void _DecodeLegacyPrefix(InstrMnemonic *instr, addr_t p) {
-  instr->instr.prefix = *(byte_t *)p;
-  instr->len++;
-
-  _ContinueDispatch(instr, p + 1); // continue decode
-}
-
-void _DecodePrefix_66(InstrMnemonic *instr, addr_t p) {
-  instr->OperandSz = OpSz_16;
-  _DecodeLegacyPrefix(instr, p);
-}
-
-// ===== Decode Opcode =====
-
-static void _DecodeOp(InstrMnemonic *instr, addr_t p) {
-  instr->instr.opcode1 = *(byte_t *)p;
-  instr->len++;
-}
-
-static void _DecodeOpExtraOp(InstrMnemonic *instr, addr_t p) {
-  _DecodeOp(instr, p);
-}
-
-static void _DecodeOpWithReg(InstrMnemonic *instr, addr_t p) {
-  _DecodeOp(instr, p);
-}
-
-#define _xDecodeOpEn_ZO 1, OpEn_ZO, OpSz_0, ImmSz_0, _DecodeOpEn_ZO
-void _DecodeOpEn_ZO(InstrMnemonic *instr, addr_t p) {
-  _DecodeOp(instr, p);
-}
-
-#define _xDecodeOpEn_O 1, OpEn_O, OpSz_0, ImmSz_0, _DecodeOpEn_O
-void _DecodeOpEn_O(InstrMnemonic *instr, addr_t p) {
-  _DecodeOpWithReg(instr, p);
-}
-
-// ===== Decode Operand =====
-
-// ===== Decode ModRM Operand =====
-
-#define REX_W(byte) ((byte & 0b00001000) >> 3)
-#define REX_R(byte) ((byte & 0b00000100) >> 2)
-#define REX_X(byte) ((byte & 0b00000010) >> 1)
-#define REX_B(byte) ((byte & 0b00000001) >> 0)
-
-#define ModRM_Mod(byte) ((byte & 0b11000000) >> 6)
-#define ModRM_RegOpcode(byte) ((byte & 0b00111000) >> 3)
-#define ModRM_RM(byte) (byte & 0b00000111)
-
-#define SIB_Scale(sib) ((sib & 0b11000000) >> 6)
-#define SIB_Index(sib) ((sib & 0b00111000) >> 3)
-#define SIB_Base(sib) ((sib & 0b00000111) >> 0)
-
-#define REX_SIB_Base(rex, sib) ((REX_B(rex) << 3) | SIB_Base(sib))
-
-void _DecodeDisplacement8(InstrMnemonic *instr, addr_t p) {
-  *(byte_t *)&instr->instr.Displacement = *(byte_t *)p;
-  instr->len += 1;
-}
-
-void _DecodeDisplacement32(InstrMnemonic *instr, addr_t p) {
-  instr->instr.DisplacementOffset = instr->len;
-  *(dword *)&instr->instr.Displacement = *(byte_t *)p;
-  instr->len += 4;
-}
-
-void _DecodeSIB(InstrMnemonic *instr, addr_t p) {
-  instr->instr.SIB = *(byte_t *)p;
-  instr->len++;
-}
-
-void _DecodeModRM(InstrMnemonic *instr, addr_t p) {
-  int init_len = instr->len;
-
-  instr->instr.ModRM = *(byte_t *)p;
-  instr->len++;
-
-#if defined(_M_X64) || defined(__x86_64__)
-  if (ModRM_Mod(instr->instr.ModRM) == 0b00 && ModRM_RM(instr->instr.ModRM) == 0b101) {
-    // RIP-Relative Addressing
-    instr->flag = instr->flag | kIPRelativeAddress;
-    _DecodeDisplacement32(instr, p + (instr->len - init_len));
-    return;
-  }
-#endif
-
-  // Addressing Forms with the SIB Byte
-  if (ModRM_Mod(instr->instr.ModRM) != 0b11 && ModRM_RM(instr->instr.ModRM) == 0b100) {
-    _DecodeSIB(instr, p + (instr->len - init_len));
-  }
-
-  // [REG]
-  if (ModRM_Mod(instr->instr.ModRM) == 0b00) {
-    if (ModRM_RM(instr->instr.ModRM) == 0b101) {
-      _DecodeDisplacement32(instr, p + (instr->len - init_len));
-      return;
-    }
-  }
-
-  // [REG+disp8}
-  if (ModRM_Mod(instr->instr.ModRM) == 0b01) {
-    _DecodeDisplacement8(instr, p + (instr->len - init_len));
-    return;
-  }
-
-  // [REG+disp32}
-  if (ModRM_Mod(instr->instr.ModRM) == 0b10) {
-    _DecodeDisplacement32(instr, p + (instr->len - init_len));
-    return;
-  }
-
-  // REG
-  if (ModRM_Mod(instr->instr.ModRM) == 0b11) {
-  }
-}
-
-void _DecodeOpEn_M(InstrMnemonic *instr, addr_t p) {
-  _DecodeOp(instr, p);
-  _DecodeModRM(instr, p + 1);
-}
-
-void _DecodeOpEn_RM(InstrMnemonic *instr, addr_t p) {
-  _DecodeOp(instr, p);
-  _DecodeModRM(instr, p + 1);
-}
-
-void _DecodeOpEn_MR(InstrMnemonic *instr, addr_t p) {
-  _DecodeOp(instr, p);
-  _DecodeModRM(instr, p + 1);
-}
-
-void _DecodeOpEn_M1(InstrMnemonic *instr, addr_t p) {
-  _DecodeOp(instr, p);
-  _DecodeModRM(instr, p + 1);
-}
-
-void _DecodeOpEn_MC(InstrMnemonic *instr, addr_t p) {
-  _DecodeOp(instr, p);
-  _DecodeModRM(instr, p + 1);
-}
-
-// ===== Decode Immediate Operand =====
-
-void _DecodeImmedite(InstrMnemonic *instr, addr_t p, int sz) {
-
-  instr->instr.ImmediateOffset = instr->len;
-
-  OpcodeDecodeItem *item = &OpcodeDecodeTable[instr->instr.opcode1];
-  if (sz == ImmSz_0) {
-    sz = item->ImmediteSz;
-    if (sz == (ImmSz_16 | ImmSz_32)) {
-      if (instr->instr.prefix == 0x66) {
-        sz = ImmSz_16;
-      } else {
-        sz = ImmSz_32; // Default Immedite Size
-      }
-    }
-  }
-
-  if (sz == ImmSz_8) {
-    *(byte_t *)&instr->instr.Immediate = *(byte_t *)p;
-    instr->len += 1;
-  } else if (sz == ImmSz_16) {
-    *(word *)&instr->instr.Immediate = *(dword *)p;
-    instr->len += 2;
-  } else if (sz == ImmSz_32) {
-    *(dword *)&instr->instr.Immediate = *(dword *)p;
-    instr->len += 4;
-  }
-}
-
-void _DecodeOpEn_I(InstrMnemonic *instr, addr_t p) {
-  _DecodeOp(instr, p);
-  _DecodeImmedite(instr, p + 1, instr->ImmediteSz);
-}
-
-void _DecodeOpEn_OI(InstrMnemonic *instr, addr_t p) {
-  _DecodeOpWithReg(instr, p);
-  _DecodeImmedite(instr, p + 1, instr->ImmediteSz);
-}
-
-void _DecodeOpEn_D(InstrMnemonic *instr, addr_t p) {
-  _DecodeOp(instr, p);
-  _DecodeImmedite(instr, p + 1, instr->ImmediteSz);
-}
-
-// ===== Decode ModRM Immediate Operand =====
-
-void _DecodeOpEn_RMI(InstrMnemonic *instr, addr_t p) {
-  _DecodeOp(instr, p);
-  _DecodeModRM(instr, p + 1);
-  _DecodeImmedite(instr, p + 2, instr->ImmediteSz);
-}
-
-void _DecodeOpEn_MI(InstrMnemonic *instr, addr_t p) {
-  _DecodeOpExtraOp(instr, p);
-  _DecodeModRM(instr, p + 1);
-  _DecodeImmedite(instr, p + 2, instr->ImmediteSz);
-}
-
-// ===== Decode Specific Opcode =====
-
-#define _xDecodeOpC8 1, 0, OpSz_0, ImmSz_0, _DecodeOpC8
-void _DecodeOpC8(InstrMnemonic *instr, addr_t p) {
-  _DecodeOp(instr, p);
-
-  instr->len = instr->len + 2 + 1;
-}
-
-// http://ref.x86asm.net/coder.html#x04
-OpcodeDecodeItem OpcodeDecodeTable[257] = {
-
-    {0x00, 2, OpEn_MR, OpSz_8, ImmSz_0, _DecodeOpEn_MR},
-    {0x01, 2, OpEn_MR, OpSz_16 | OpSz_32, ImmSz_0, _DecodeOpEn_MR},
-    {0x02, 2, OpEn_RM, OpSz_8, ImmSz_0, _DecodeOpEn_RM},
-    {0x03, 2, OpEn_RM, OpSz_16 | OpSz_32, ImmSz_0, _DecodeOpEn_RM},
-    {0x04, 1, OpEn_I, OpSz_0, ImmSz_8, _DecodeOpEn_I},
-    {0x05, 1, OpEn_I, OpSz_16 | OpSz_32, ImmSz_16 | ImmSz_32, _DecodeOpEn_I},
-#if defined(_M_X64) || defined(__x86_64__)
-    {0x06, _xInvalidOpHanlder},
-    {0x07, _xInvalidOpHanlder},
-#else
-    {0x06, _xDecodeOpEn_ZO},
-    {0x07, _xDecodeOpEn_ZO},
-#endif
-    {0x08, 2, OpEn_MR, OpSz_8, ImmSz_0, _DecodeOpEn_MR},
-    {0x09, 2, OpEn_MR, OpSz_16 | OpSz_32, ImmSz_0, _DecodeOpEn_MR},
-    {0x0A, 2, OpEn_RM, OpSz_8, ImmSz_0, _DecodeOpEn_RM},
-    {0x0B, 2, OpEn_RM, OpSz_16 | OpSz_32, ImmSz_0, _DecodeOpEn_RM},
-    {0x0C, 1, OpEn_I, OpSz_0, ImmSz_8, _DecodeOpEn_I},
-    {0x0D, 1, OpEn_I, OpSz_16 | OpSz_32, ImmSz_16 | ImmSz_32, _DecodeOpEn_I},
-#if defined(_M_X64) || defined(__x86_64__)
-    {0x0E, _xInvalidOpHanlder},
-#else
-    {0x0E, _xDecodeOpEn_ZO},
-#endif
-    {0x0F, _xDecodePrefix_0F},
-    {0x10, 2, OpEn_MR, OpSz_8, ImmSz_0, _DecodeOpEn_MR},
-    {0x11, 2, OpEn_MR, OpSz_16 | OpSz_32, ImmSz_0, _DecodeOpEn_MR},
-    {0x12, 2, OpEn_RM, OpSz_8, ImmSz_0, _DecodeOpEn_RM},
-    {0x13, 2, OpEn_RM, OpSz_16 | OpSz_32, ImmSz_0, _DecodeOpEn_RM},
-    {0x14, 1, OpEn_I, OpSz_0, ImmSz_8, _DecodeOpEn_I},
-    {0x15, 1, OpEn_I, OpSz_16 | OpSz_32, ImmSz_16 | ImmSz_32, _DecodeOpEn_I},
-#if defined(_M_X64) || defined(__x86_64__)
-    {0x16, _xInvalidOpHanlder},
-    {0x17, _xInvalidOpHanlder},
-#else
-    {0x16, _xDecodeOpEn_ZO},
-    {0x17, _xDecodeOpEn_ZO},
-#endif
-    {0x18, 2, OpEn_MR, OpSz_8, ImmSz_0, _DecodeOpEn_MR},
-    {0x19, 2, OpEn_MR, OpSz_16 | OpSz_32, ImmSz_0, _DecodeOpEn_MR},
-    {0x1A, 2, OpEn_RM, OpSz_8, ImmSz_0, _DecodeOpEn_RM},
-    {0x1B, 2, OpEn_RM, OpSz_16 | OpSz_32, ImmSz_0, _DecodeOpEn_RM},
-    {0x1C, 1, OpEn_I, OpSz_0, ImmSz_8, _DecodeOpEn_I},
-    {0x1D, 1, OpEn_I, OpSz_16 | OpSz_32, ImmSz_16 | ImmSz_32, _DecodeOpEn_I},
-#if defined(_M_X64) || defined(__x86_64__)
-    {0x1E, _xInvalidOpHanlder},
-    {0x1F, _xInvalidOpHanlder},
-#else
-    {0x1E, _xDecodeOpEn_ZO},
-    {0x1F, _xDecodeOpEn_ZO},
-#endif
-    {0x20, 2, OpEn_MR, OpSz_8, ImmSz_0, _DecodeOpEn_MR},
-    {0x21, 2, OpEn_MR, OpSz_16 | OpSz_32, ImmSz_0, _DecodeOpEn_MR},
-    {0x22, 2, OpEn_RM, OpSz_8, ImmSz_0, _DecodeOpEn_RM},
-    {0x23, 2, OpEn_RM, OpSz_16 | OpSz_32, ImmSz_0, _DecodeOpEn_RM},
-    {0x24, 1, OpEn_I, OpSz_0, ImmSz_8, _DecodeOpEn_I},
-    {0x25, 1, OpEn_I, OpSz_16 | OpSz_32, ImmSz_16 | ImmSz_32, _DecodeOpEn_I},
-    {0x26, _xDecodeSegPrefix},
-#if defined(_M_X64) || defined(__x86_64__)
-    {0x27, _xInvalidOpHanlder},
-#else
-    {0x27, _xDecodeOpEn_ZO},
-#endif
-    {0x28, 2, OpEn_MR, OpSz_8, ImmSz_0, _DecodeOpEn_MR},
-    {0x29, 2, OpEn_MR, OpSz_16 | OpSz_32, ImmSz_0, _DecodeOpEn_MR},
-    {0x2A, 2, OpEn_RM, OpSz_8, ImmSz_0, _DecodeOpEn_RM},
-    {0x2B, 2, OpEn_RM, OpSz_16 | OpSz_32, ImmSz_0, _DecodeOpEn_RM},
-    {0x2C, 1, OpEn_I, OpSz_0, ImmSz_8, _DecodeOpEn_I},
-    {0x2D, 1, OpEn_I, OpSz_16 | OpSz_32, ImmSz_16 | ImmSz_32, _DecodeOpEn_I},
-    {0x2E, _xDecodeSegPrefix},
-#if defined(_M_X64) || defined(__x86_64__)
-    {0x2F, _xInvalidOpHanlder},
-#else
-    {0x2F, _xDecodeOpEn_ZO},
-#endif
-    {0x30, 2, OpEn_MR, OpSz_8, ImmSz_0, _DecodeOpEn_MR},
-    {0x31, 2, OpEn_MR, OpSz_16 | OpSz_32, ImmSz_0, _DecodeOpEn_MR},
-    {0x32, 2, OpEn_RM, OpSz_8, ImmSz_0, _DecodeOpEn_RM},
-    {0x33, 2, OpEn_RM, OpSz_16 | OpSz_32, ImmSz_0, _DecodeOpEn_RM},
-    {0x34, 1, OpEn_I, OpSz_0, ImmSz_8, _DecodeOpEn_I},
-    {0x35, 1, OpEn_I, OpSz_16 | OpSz_32, ImmSz_16 | ImmSz_32, _DecodeOpEn_I},
-    {0x36, _xDecodeSegPrefix},
-#if defined(_M_X64) || defined(__x86_64__)
-    {0x37, _xInvalidOpHanlder},
-#else
-    {0x37, _xDecodeOpEn_ZO},
-#endif
-    {0x38, 2, OpEn_MR, OpSz_8, ImmSz_0, _DecodeOpEn_MR},
-    {0x39, 2, OpEn_MR, OpSz_16 | OpSz_32, ImmSz_0, _DecodeOpEn_MR},
-    {0x3A, 2, OpEn_RM, OpSz_8, ImmSz_0, _DecodeOpEn_RM},
-    {0x3B, 2, OpEn_RM, OpSz_16 | OpSz_32, ImmSz_0, _DecodeOpEn_RM},
-    {0x3C, 1, OpEn_I, OpSz_0, ImmSz_8, _DecodeOpEn_I},
-    {0x3D, 1, OpEn_I, OpSz_16 | OpSz_32, ImmSz_16 | ImmSz_32, _DecodeOpEn_I},
-    {0x3E, _xDecodeSegPrefix},
-#if defined(_M_X64) || defined(__x86_64__)
-    {0x3F, _xInvalidOpHanlder},
-#else
-    {0x3F, _xDecodeOpEn_ZO},
-#endif
-#if defined(_M_X64) || defined(__x86_64__) // For REX Prefix
-    {0x40, _xDecodeREXPrefix},
-    {0x41, _xDecodeREXPrefix},
-    {0x42, _xDecodeREXPrefix},
-    {0x43, _xDecodeREXPrefix},
-    {0x44, _xDecodeREXPrefix},
-    {0x45, _xDecodeREXPrefix},
-    {0x46, _xDecodeREXPrefix},
-    {0x47, _xDecodeREXPrefix},
-    {0x48, _xDecodeREXPrefix},
-    {0x49, _xDecodeREXPrefix},
-    {0x4A, _xDecodeREXPrefix},
-    {0x4B, _xDecodeREXPrefix},
-    {0x4C, _xDecodeREXPrefix},
-    {0x4D, _xDecodeREXPrefix},
-    {0x4E, _xDecodeREXPrefix},
-    {0x4F, _xDecodeREXPrefix},
-#else
-    {0x40, _xDecodeOpEn_O},
-    {0x41, _xDecodeOpEn_O},
-    {0x42, _xDecodeOpEn_O},
-    {0x43, _xDecodeOpEn_O},
-    {0x44, _xDecodeOpEn_O},
-    {0x45, _xDecodeOpEn_O},
-    {0x46, _xDecodeOpEn_O},
-    {0x47, _xDecodeOpEn_O},
-    {0x48, _xDecodeOpEn_O},
-    {0x49, _xDecodeOpEn_O},
-    {0x4A, _xDecodeOpEn_O},
-    {0x4B, _xDecodeOpEn_O},
-    {0x4C, _xDecodeOpEn_O},
-    {0x4D, _xDecodeOpEn_O},
-    {0x4E, _xDecodeOpEn_O},
-    {0x4F, _xDecodeOpEn_O},
-#endif
-    {0x50, _xDecodeOpEn_O},
-    {0x51, _xDecodeOpEn_O},
-    {0x52, _xDecodeOpEn_O},
-    {0x53, _xDecodeOpEn_O},
-    {0x54, _xDecodeOpEn_O},
-    {0x55, _xDecodeOpEn_O},
-    {0x56, _xDecodeOpEn_O},
-    {0x57, _xDecodeOpEn_O},
-    {0x58, _xDecodeOpEn_O},
-    {0x59, _xDecodeOpEn_O},
-    {0x5A, _xDecodeOpEn_O},
-    {0x5B, _xDecodeOpEn_O},
-    {0x5C, _xDecodeOpEn_O},
-    {0x5D, _xDecodeOpEn_O},
-    {0x5E, _xDecodeOpEn_O},
-    {0x5F, _xDecodeOpEn_O},
-#if defined(_M_X64) || defined(__x86_64__)
-    {0x60, _xInvalidOpHanlder},
-    {0x61, _xInvalidOpHanlder},
-    {0x62, _xInvalidOpHanlder},
-#else
-    {0x60, _xDecodeOpEn_ZO},
-    {0x61, _xDecodeOpEn_ZO},
-    {0x62, 2, OpEn_RM, OpSz_16 | OpSz_32, ImmSz_0, _DecodeOpEn_RM},
-#endif
-    {0x63, 2, OpEn_RM, OpSz_16 | OpSz_32, ImmSz_0, _DecodeOpEn_RM},
-    {0x64, _xDecodeSegPrefix},
-    {0x65, _xDecodeSegPrefix},
-    {0x66, _xDecodePrefix_66},
-    {0x67, _xDecodePrefix_67},
-    {0x68, 1, OpEn_I, OpSz_16 | OpSz_32, ImmSz_16 | ImmSz_32, _DecodeOpEn_I},
-    {0x69, 2, OpEn_RMI, OpSz_16 | OpSz_32, ImmSz_16 | ImmSz_32, _DecodeOpEn_RMI},
-    {0x6A, 1, OpEn_I, OpSz_0, ImmSz_8, _DecodeOpEn_I},
-    {0x6B, 1, OpEn_RMI, OpSz_16 | OpSz_32, ImmSz_8, _DecodeOpEn_RMI},
-    {0x6C, _xDecodeOpEn_ZO},
-    {0x6D, _xDecodeOpEn_ZO},
-    {0x6E, _xDecodeOpEn_ZO},
-    {0x6F, _xDecodeOpEn_ZO},
-    {0x70, 1, OpEn_D, OpSz_0, ImmSz_8, _DecodeOpEn_D},
-    {0x71, 1, OpEn_D, OpSz_0, ImmSz_8, _DecodeOpEn_D},
-    {0x72, 1, OpEn_D, OpSz_0, ImmSz_8, _DecodeOpEn_D},
-    {0x73, 1, OpEn_D, OpSz_0, ImmSz_8, _DecodeOpEn_D},
-    {0x74, 1, OpEn_D, OpSz_0, ImmSz_8, _DecodeOpEn_D},
-    {0x75, 1, OpEn_D, OpSz_0, ImmSz_8, _DecodeOpEn_D},
-    {0x76, 1, OpEn_D, OpSz_0, ImmSz_8, _DecodeOpEn_D},
-    {0x77, 1, OpEn_D, OpSz_0, ImmSz_8, _DecodeOpEn_D},
-    {0x78, 1, OpEn_D, OpSz_0, ImmSz_8, _DecodeOpEn_D},
-    {0x79, 1, OpEn_D, OpSz_0, ImmSz_8, _DecodeOpEn_D},
-    {0x7A, 1, OpEn_D, OpSz_0, ImmSz_8, _DecodeOpEn_D},
-    {0x7B, 1, OpEn_D, OpSz_0, ImmSz_8, _DecodeOpEn_D},
-    {0x7C, 1, OpEn_D, OpSz_0, ImmSz_8, _DecodeOpEn_D},
-    {0x7D, 1, OpEn_D, OpSz_0, ImmSz_8, _DecodeOpEn_D},
-    {0x7E, 1, OpEn_D, OpSz_0, ImmSz_8, _DecodeOpEn_D},
-    {0x7F, 1, OpEn_D, OpSz_0, ImmSz_8, _DecodeOpEn_D},
-    {0x80, 2, OpEn_MI, OpSz_8, ImmSz_8, _DecodeOpEn_MI},
-    {0x81, 2, OpEn_MI, OpSz_16 | OpSz_32, ImmSz_16 | ImmSz_32, _DecodeOpEn_MI},
-#if defined(_M_X64) || defined(__x86_64__)
-    {0x82, _xInvalidOpHanlder},
-#else
-    {0x82, _xUnknownOpHanlder},
-#endif
-    {0x83, 2, OpEn_MI, OpSz_16 | OpSz_32, ImmSz_8, _DecodeOpEn_MI},
-    {0x84, 2, OpEn_MR, OpSz_8, ImmSz_0, _DecodeOpEn_MR},
-    {0x85, 2, OpEn_MR, OpSz_16 | OpSz_32, ImmSz_0, _DecodeOpEn_MR},
-    {0x86, 2, OpEn_RM, OpSz_16 | OpSz_32, ImmSz_0, _DecodeOpEn_RM},
-    {0x87, 2, OpEn_RM, OpSz_16 | OpSz_32, ImmSz_0, _DecodeOpEn_RM},
-    {0x88, 2, OpEn_MR, OpSz_8, ImmSz_0, _DecodeOpEn_MR},
-    {0x89, 2, OpEn_MR, OpSz_16 | OpSz_32, ImmSz_0, _DecodeOpEn_MR},
-    {0x8A, 2, OpEn_RM, OpSz_16 | OpSz_32, ImmSz_0, _DecodeOpEn_RM},
-    {0x8B, 2, OpEn_RM, OpSz_16 | OpSz_32, ImmSz_0, _DecodeOpEn_RM},
-    {0x8C, 2, OpEn_MR, OpSz_16 | OpSz_32, ImmSz_0, _DecodeOpEn_MR},
-    {0x8D, 2, OpEn_RM, OpSz_16 | OpSz_32, ImmSz_0, _DecodeOpEn_RM},
-    {0x8E, 2, OpEn_RM, OpSz_16 | OpSz_32, ImmSz_0, _DecodeOpEn_RM},
-    {0x8F, 2, OpEn_M, OpSz_16 | OpSz_32, ImmSz_0, _DecodeOpEn_M},
-    {0x90, _xDecodeOpEn_ZO},
-    {0x91, _xInvalidOpHanlder},
-    {0x92, _xInvalidOpHanlder},
-    {0x93, _xInvalidOpHanlder},
-    {0x94, _xInvalidOpHanlder},
-    {0x95, _xInvalidOpHanlder},
-    {0x96, _xInvalidOpHanlder},
-    {0x97, _xInvalidOpHanlder},
-    {0x98, _xDecodeOpEn_ZO},
-    {0x99, _xDecodeOpEn_ZO},
-#if defined(_M_X64) || defined(__x86_64__)
-    {0x9A, _xInvalidOpHanlder},
-#else
-    {0x9A, _xDecodeOpEn_ZO},
-#endif
-    {0x9B, _xDecodeOpEn_ZO},
-    {0x9C, _xDecodeOpEn_ZO},
-    {0x9D, _xDecodeOpEn_ZO},
-    {0x9E, _xDecodeOpEn_ZO},
-    {0x9F, _xDecodeOpEn_ZO},
-    {0xA0, _xUnknownOpHanlder},
-    {0xA1, _xUnknownOpHanlder},
-    {0xA2, _xUnknownOpHanlder},
-    {0xA3, _xUnknownOpHanlder},
-    {0xA4, _xDecodeOpEn_ZO},
-    {0xA5, _xDecodeOpEn_ZO},
-    {0xA6, _xDecodeOpEn_ZO},
-    {0xA7, _xDecodeOpEn_ZO},
-    {0xA8, 1, OpEn_I, OpSz_0, ImmSz_8, _DecodeOpEn_I},
-    {0xA9, 1, OpEn_I, OpSz_16 | OpSz_32, ImmSz_16 | ImmSz_32, _DecodeOpEn_I},
-    {0xAA, _xDecodeOpEn_ZO},
-    {0xAB, _xDecodeOpEn_ZO},
-    {0xAC, _xDecodeOpEn_ZO},
-    {0xAD, _xDecodeOpEn_ZO},
-    {0xAE, _xDecodeOpEn_ZO},
-    {0xAF, _xDecodeOpEn_ZO},
-#undef SAME_ITEM_LAZY
-#define SAME_ITEM_LAZY 1, OpEn_OI, OpSz_0, ImmSz_8, _DecodeOpEn_OI
-    {0xB0, SAME_ITEM_LAZY},
-    {0xB1, SAME_ITEM_LAZY},
-    {0xB2, SAME_ITEM_LAZY},
-    {0xB3, SAME_ITEM_LAZY},
-    {0xB4, SAME_ITEM_LAZY},
-    {0xB5, SAME_ITEM_LAZY},
-    {0xB6, SAME_ITEM_LAZY},
-    {0xB7, SAME_ITEM_LAZY},
-#undef SAME_ITEM_LAZY
-#define SAME_ITEM_LAZY 1, OpEn_OI, OpSz_16 | OpSz_32, ImmSz_16 | ImmSz_32, _DecodeOpEn_OI
-    {0xB8, SAME_ITEM_LAZY},
-    {0xB9, SAME_ITEM_LAZY},
-    {0xBA, SAME_ITEM_LAZY},
-    {0xBB, SAME_ITEM_LAZY},
-    {0xBC, SAME_ITEM_LAZY},
-    {0xBD, SAME_ITEM_LAZY},
-    {0xBE, SAME_ITEM_LAZY},
-    {0xBF, SAME_ITEM_LAZY},
-    {0xC0, 2, OpEn_MI, OpSz_8, ImmSz_8, _DecodeOpEn_MI},
-    {0xC1, 2, OpEn_MI, OpSz_16 | OpSz_32, ImmSz_16 | ImmSz_32, _DecodeOpEn_MI},
-    {0xC2, 1, OpEn_I, OpSz_0, ImmSz_16, _DecodeOpEn_I},
-    {0xC3, _xDecodeOpEn_ZO},
-    {0xC4, _xInvalidOpHanlder},
-    {0xC5, _xInvalidOpHanlder},
-    {0xC6, _xUnknownOpHanlder},
-    {0xC7, 2, OpEn_MI, OpSz_16 | OpSz_32, ImmSz_16 | ImmSz_32, _DecodeOpEn_MI},
-    {0xC8, _xDecodeOpC8},
-    {0xC9, _xDecodeOpEn_ZO},
-    {0xCA, 1, OpEn_I, OpSz_0, ImmSz_16, _DecodeOpEn_I},
-    {0xCB, _xDecodeOpEn_ZO},
-    {0xCC, _xDecodeOpEn_ZO},
-    {0xCD, 1, OpEn_I, OpSz_0, ImmSz_8, _DecodeOpEn_I},
-#if defined(_M_X64) || defined(__x86_64__)
-    {0xCE, _xInvalidOpHanlder},
-#else
-    {0xCE, _xDecodeOpEn_ZO},
-#endif
-    {0xCF, _xDecodeOpEn_ZO},
-    {0xD0, 1, OpEn_M1, OpSz_8, ImmSz_0, _DecodeOpEn_M1},
-    {0xD1, 1, OpEn_M1, OpSz_16 | OpSz_32, ImmSz_0, _DecodeOpEn_M1},
-    {0xD2, 1, OpEn_MC, OpSz_8, ImmSz_0, _DecodeOpEn_MC},
-    {0xD3, 1, OpEn_MC, OpSz_16 | OpSz_32, ImmSz_0, _DecodeOpEn_MC},
-#if defined(_M_X64) || defined(__x86_64__)
-    {0xD4, _xInvalidOpHanlder},
-    {0xD5, _xInvalidOpHanlder},
-#else
-    {0xD4, 1, OpEn_I, OpSz_0, ImmSz_8, _DecodeOpEn_I},
-    {0xD5, 1, OpEn_I, OpSz_0, ImmSz_8, _DecodeOpEn_I},
-#endif
-    {0xD6, _xInvalidOpHanlder},
-    {0xD7, _xDecodeOpEn_ZO},
-    {0xD8, _xUnknownOpHanlder},
-    {0xD9, _xUnknownOpHanlder},
-    {0xDA, _xUnknownOpHanlder},
-    {0xDB, _xUnknownOpHanlder},
-    {0xDC, _xUnknownOpHanlder},
-    {0xDD, _xUnknownOpHanlder},
-    {0xDE, _xUnknownOpHanlder},
-    {0xDF, _xUnknownOpHanlder},
-    {0xE0, 1, OpEn_D, OpSz_0, ImmSz_8, _DecodeOpEn_D},
-    {0xE1, 1, OpEn_D, OpSz_0, ImmSz_8, _DecodeOpEn_D},
-    {0xE2, 1, OpEn_D, OpSz_0, ImmSz_8, _DecodeOpEn_D},
-    {0xE3, 1, OpEn_D, OpSz_0, ImmSz_8, _DecodeOpEn_D},
-    {0xE4, 1, OpEn_I, OpSz_0, ImmSz_8, _DecodeOpEn_I},
-    {0xE5, 1, OpEn_I, OpSz_0, ImmSz_8, _DecodeOpEn_I},
-    {0xE6, 1, OpEn_I, OpSz_0, ImmSz_8, _DecodeOpEn_I},
-    {0xE7, 1, OpEn_I, OpSz_0, ImmSz_8, _DecodeOpEn_I},
-    {0xE8, 1, OpEn_I, OpSz_16 | OpSz_32, ImmSz_16 | ImmSz_32, _DecodeOpEn_I},
-    {0xE9, 1, OpEn_I, OpSz_16 | OpSz_32, ImmSz_16 | ImmSz_32, _DecodeOpEn_I},
-#if defined(_M_X64) || defined(__x86_64__)
-    {0xEA, _xInvalidOpHanlder},
-#else
-    {0xEA, _xUnknownOpHanlder},
-#endif
-    {0xEB, 1, OpEn_I, OpSz_0, ImmSz_8, _DecodeOpEn_I},
-    {0xEC, _xDecodeOpEn_ZO},
-    {0xED, _xDecodeOpEn_ZO},
-    {0xEE, _xDecodeOpEn_ZO},
-    {0xEF, _xDecodeOpEn_ZO},
-    {0xF0, _xDecodePrefix},
-    {0xF1, _xDecodeOpEn_ZO},
-    {0xF2, _xDecodeOpEn_ZO},
-#ifdef DETOURS_X86
-    {0xF3, _CopyF3},
-#else
-    {0xF3, _xDecodeOpEn_ZO},
-#endif
-    {0xF4, _xDecodeOpEn_ZO},
-    {0xF5, _xDecodeOpEn_ZO},
-    {0xF6, 2, OpEn_MI, OpSz_8, ImmSz_8, _DecodeOpEn_MI},
-    {0xF7, 2, OpEn_MI, OpSz_16 | OpSz_32, ImmSz_16 | ImmSz_32, _DecodeOpEn_MI},
-    {0xF8, _xDecodeOpEn_ZO},
-    {0xF9, _xDecodeOpEn_ZO},
-    {0xFA, _xDecodeOpEn_ZO},
-    {0xFB, _xDecodeOpEn_ZO},
-    {0xFC, _xDecodeOpEn_ZO},
-    {0xFD, _xDecodeOpEn_ZO},
-    {0xFE, 2, OpEn_M, OpSz_8, ImmSz_0, _DecodeOpEn_M},
-    {0xFF, 2, OpEn_M, OpSz_16 | OpSz_32, ImmSz_0, _DecodeOpEn_M},
-    {0, 0, 0, 0, 0}};
-
-#endif
\ No newline at end of file
diff --git a/loader/dobby/source/InstructionRelocation/x86/deprecated/X86OpcodoDecodeTable.h b/loader/dobby/source/InstructionRelocation/x86/deprecated/X86OpcodoDecodeTable.h
deleted file mode 100644
index 778fdb30..00000000
--- a/loader/dobby/source/InstructionRelocation/x86/deprecated/X86OpcodoDecodeTable.h
+++ /dev/null
@@ -1,142 +0,0 @@
-#ifndef X86_OPCODE_DECODE_TABLE_H
-#define X86_OPCODE_DECODE_TABLE_H
-
-#ifndef __addr_t_defined
-#define __addr_t_defined
-typedef unsigned long long addr_t;
-#endif
-
-#ifndef __byte_defined
-#define __byte_defined
-typedef unsigned char byte_t;
-#endif
-
-#ifndef __uint_defined
-#define __uint_defined
-typedef unsigned int uint;
-#endif
-
-#ifndef __word_defined
-#define __word_defined
-typedef short word;
-#endif
-
-#ifndef __dword_defined
-#define __dword_defined
-typedef int dword;
-#endif
-
-enum OpcodeType { OpTy_Op1, OpTy_RegInOp1, OpTy_Op1ExtraOp };
-
-struct Instr {
-  byte_t prefix;
-
-  byte_t REX;
-
-  union {
-    byte_t opcode[3];
-    struct {
-      byte_t opcode1;
-      byte_t opcode2;
-      byte_t opcode3;
-    };
-  };
-
-  union {
-    byte_t ModRM;
-    struct {
-      byte_t Mod : 2;
-      byte_t RegOpcode : 3;
-      byte_t RM : 3;
-    };
-  };
-
-  union {
-    byte_t SIB;
-    struct {
-      byte_t base : 2;
-      byte_t index : 3;
-      byte_t scale : 3;
-    };
-  };
-
-  byte_t Displacement[4];
-  int DisplacementOffset;
-
-  byte_t Immediate[4];
-  int ImmediateOffset;
-};
-
-// clang-format off
-enum OperandSize {
-  OpSz_0 = 0,
-  OpSz_8=1,
-  OpSz_16=2,
-  OpSz_32=4,
-  OpSz_64=8
-};
-
-enum ImmediteSize {
-  ImmSz_0      = 0,
-  ImmSz_8=1,
-  ImmSz_16=2,
-  ImmSz_32=4,
-  ImmSz_64=8
-};
-
-enum InstrFlag {
-  kNoFlag = 0,
-  kIPRelativeAddress = 1
-};
-// clang-format on
-
-struct InstrMnemonic {
-  uint len;
-
-  int flag;
-
-  OperandSize OperandSz;
-
-  ImmediteSize ImmediteSz;
-
-  struct Instr instr;
-};
-
-struct OpcodeDecodeItem {
-  unsigned char opcode;
-
-  int FixedSize;
-
-  int OpEn;
-
-  int OperandSz;
-
-  int ImmediteSz;
-
-  void (*DecodeHandler)(InstrMnemonic *, addr_t);
-};
-
-// clang-format off
-enum OperandEncodingType {
-  OpEn_NONE =0,
-  OpEn_ZO,
-  OpEn_M,
-  OpEn_I,
-  OpEn_D,
-  OpEn_O,
-  OpEn_RM,
-  OpEn_MR,
-  OpEn_MI,
-  OpEn_OI,
-  OpEn_M1,
-  OpEn_MC,
-  OpEn_RMI
-};
-
-// clang-format on
-
-extern OpcodeDecodeItem OpcodeDecodeTable[257];
-
-void _DecodePrefix(InstrMnemonic *instr, addr_t p);
-
-#endif
diff --git a/loader/dobby/source/InstructionRelocation/x86/x86_insn_decode/build_config.h b/loader/dobby/source/InstructionRelocation/x86/x86_insn_decode/build_config.h
deleted file mode 100644
index 6206267e..00000000
--- a/loader/dobby/source/InstructionRelocation/x86/x86_insn_decode/build_config.h
+++ /dev/null
@@ -1,144 +0,0 @@
-#ifndef BUILD_CONFIG_H
-#define BUILD_CONFIG_H
-
-#if defined(__APPLE__)
-// only include TargetConditions after testing ANDROID as some android builds
-// on mac don't have this header available and it's not needed unless the target
-// is really mac/ios.
-#include <TargetConditionals.h>
-#define OS_MACOSX 1
-#if defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE
-#define OS_IOS 1
-#endif // defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE
-#elif defined(__linux__)
-#define OS_LINUX 1
-// include a system header to pull in features.h for glibc/uclibc macros.
-#include <unistd.h>
-#if defined(__GLIBC__) && !defined(__UCLIBC__)
-// we really are using glibc, not uClibc pretending to be glibc
-#define LIBC_GLIBC 1
-#endif
-#elif defined(_WIN32)
-#define OS_WIN 1
-#elif defined(__Fuchsia__)
-#define OS_FUCHSIA 1
-#elif defined(__FreeBSD__)
-#define OS_FREEBSD 1
-#elif defined(__NetBSD__)
-#define OS_NETBSD 1
-#elif defined(__OpenBSD__)
-#define OS_OPENBSD 1
-#elif defined(__sun)
-#define OS_SOLARIS 1
-#elif defined(__QNXNTO__)
-#define OS_QNX 1
-#elif defined(_AIX)
-#define OS_AIX 1
-#elif defined(__asmjs__) || defined(__wasm__)
-#define OS_ASMJS
-#else
-#error Please add support for your platform in build/build_config.h
-#endif
-// NOTE: Adding a new port? Please follow
-// https://chromium.googlesource.com/chromium/src/+/master/docs/new_port_policy.md
-
-// For access to standard BSD features, use OS_BSD instead of a
-// more specific macro.
-#if defined(OS_FREEBSD) || defined(OS_NETBSD) || defined(OS_OPENBSD)
-#define OS_BSD 1
-#endif
-
-// For access to standard POSIXish features, use OS_POSIX instead of a
-// more specific macro.
-#if defined(OS_AIX) || defined(OS_ANDROID) || defined(OS_ASMJS) || defined(OS_FREEBSD) || defined(OS_LINUX) ||         \
-    defined(OS_MACOSX) || defined(OS_NACL) || defined(OS_NETBSD) || defined(OS_OPENBSD) || defined(OS_QNX) ||          \
-    defined(OS_SOLARIS)
-#define OS_POSIX 1
-#endif
-
-// Compiler detection. Note: clang masquerades as GCC on POSIX and as MSVC on
-// Windows.
-#if defined(__GNUC__)
-#define COMPILER_GCC 1
-#elif defined(_MSC_VER)
-#define COMPILER_MSVC 1
-#else
-#error Please add support for your compiler in build/build_config.h
-#endif
-
-// Processor architecture detection.  For more info on what's defined, see:
-//   http://msdn.microsoft.com/en-us/library/b0084kay.aspx
-//   http://www.agner.org/optimize/calling_conventions.pdf
-//   or with gcc, run: "echo | gcc -E -dM -"
-#if defined(_M_X64) || defined(__x86_64__)
-#define ARCH_CPU_X86_FAMILY 1
-#define ARCH_CPU_X86_64 1
-#define ARCH_CPU_64_BITS 1
-#define ARCH_CPU_LITTLE_ENDIAN 1
-#elif defined(_M_IX86) || defined(__i386__)
-#define ARCH_CPU_X86_FAMILY 1
-#define ARCH_CPU_X86 1
-#define ARCH_CPU_32_BITS 1
-#define ARCH_CPU_LITTLE_ENDIAN 1
-#elif defined(__s390x__)
-#define ARCH_CPU_S390_FAMILY 1
-#define ARCH_CPU_S390X 1
-#define ARCH_CPU_64_BITS 1
-#define ARCH_CPU_BIG_ENDIAN 1
-#elif defined(__s390__)
-#define ARCH_CPU_S390_FAMILY 1
-#define ARCH_CPU_S390 1
-#define ARCH_CPU_31_BITS 1
-#define ARCH_CPU_BIG_ENDIAN 1
-#elif (defined(__PPC64__) || defined(__PPC__)) && defined(__BIG_ENDIAN__)
-#define ARCH_CPU_PPC64_FAMILY 1
-#define ARCH_CPU_PPC64 1
-#define ARCH_CPU_64_BITS 1
-#define ARCH_CPU_BIG_ENDIAN 1
-#elif defined(__PPC64__)
-#define ARCH_CPU_PPC64_FAMILY 1
-#define ARCH_CPU_PPC64 1
-#define ARCH_CPU_64_BITS 1
-#define ARCH_CPU_LITTLE_ENDIAN 1
-#elif defined(__ARMEL__)
-#define ARCH_CPU_ARM_FAMILY 1
-#define ARCH_CPU_ARMEL 1
-#define ARCH_CPU_32_BITS 1
-#define ARCH_CPU_LITTLE_ENDIAN 1
-#elif defined(__aarch64__) || defined(_M_ARM64)
-#define ARCH_CPU_ARM_FAMILY 1
-#define ARCH_CPU_ARM64 1
-#define ARCH_CPU_64_BITS 1
-#define ARCH_CPU_LITTLE_ENDIAN 1
-#elif defined(__pnacl__) || defined(__asmjs__) || defined(__wasm__)
-#define ARCH_CPU_32_BITS 1
-#define ARCH_CPU_LITTLE_ENDIAN 1
-#elif defined(__MIPSEL__)
-#if defined(__LP64__)
-#define ARCH_CPU_MIPS_FAMILY 1
-#define ARCH_CPU_MIPS64EL 1
-#define ARCH_CPU_64_BITS 1
-#define ARCH_CPU_LITTLE_ENDIAN 1
-#else
-#define ARCH_CPU_MIPS_FAMILY 1
-#define ARCH_CPU_MIPSEL 1
-#define ARCH_CPU_32_BITS 1
-#define ARCH_CPU_LITTLE_ENDIAN 1
-#endif
-#elif defined(__MIPSEB__)
-#if defined(__LP64__)
-#define ARCH_CPU_MIPS_FAMILY 1
-#define ARCH_CPU_MIPS64 1
-#define ARCH_CPU_64_BITS 1
-#define ARCH_CPU_BIG_ENDIAN 1
-#else
-#define ARCH_CPU_MIPS_FAMILY 1
-#define ARCH_CPU_MIPS 1
-#define ARCH_CPU_32_BITS 1
-#define ARCH_CPU_BIG_ENDIAN 1
-#endif
-#else
-#error Please add support for your architecture in build/build_config.h
-#endif
-
-#endif
\ No newline at end of file
diff --git a/loader/dobby/source/InstructionRelocation/x86/x86_insn_decode/x86_insn_decode.c b/loader/dobby/source/InstructionRelocation/x86/x86_insn_decode/x86_insn_decode.c
deleted file mode 100644
index 3abde973..00000000
--- a/loader/dobby/source/InstructionRelocation/x86/x86_insn_decode/x86_insn_decode.c
+++ /dev/null
@@ -1,578 +0,0 @@
-#include "./x86_insn_decode.h"
-
-#include <stdint.h>
-#include <stdio.h>
-#include <string.h>
-
-#include "logging/logging.h"
-
-#define REX_W(byte) ((byte & 0b00001000) >> 3)
-#define REX_R(byte) ((byte & 0b00000100) >> 2)
-#define REX_X(byte) ((byte & 0b00000010) >> 1)
-#define REX_B(byte) ((byte & 0b00000001) >> 0)
-
-#define ModRM_Mod(byte) ((byte & 0b11000000) >> 6)
-#define ModRM_RegOpcode(byte) ((byte & 0b00111000) >> 3)
-#define ModRM_RM(byte) (byte & 0b00000111)
-
-#define SIB_Scale(sib) ((sib & 0b11000000) >> 6)
-#define SIB_Index(sib) ((sib & 0b00111000) >> 3)
-#define SIB_Base(sib) ((sib & 0b00000111) >> 0)
-
-#if 0
-/* Build an encoding specification from scratch. */
-#define SPEC_MAKE(op, opr1, opr2, opr3, opr4)                                                                          \
-  ((uint64_t)(uint16_t)(int16_t)(op) | ((uint64_t)(opr1) << 16) | ((uint64_t)(opr2) << 24) |                           \
-   ((uint64_t)(opr3) << 32) | ((uint64_t)(opr4) << 40))
-
-/* Get the operation in an encoding specification. */
-#define SPEC_INSN(spec) ((int16_t)((spec)&0xffff))
-
-/* Get the given operand (zero-based) in an encoding specification. */
-#define SPEC_OPERAND(spec, i) ((uint8_t)(((spec) >> (16 + (i)*8)) & 0xff))
-
-/* Get the operands part of an encoding specification. */
-#define SPEC_OPERANDS(spec) ((spec)&0xffffffffffff0000ULL)
-
-/* Merges two encoding specifications. */
-#define SPEC_MERGE(spec1, spec2) ((spec1) | (spec2))
-
-#define OP4(insn, oper1, oper2, oper3, oper4) SPEC_MAKE(I_##insn, O_##oper1, O_##oper2, O_##oper3, O_##oper4)
-#define OP3(insn, oper1, oper2, oper3) OP4(insn, oper1, oper2, oper3, NONE)
-#define OP2(insn, oper1, oper2) OP3(insn, oper1, oper2, NONE)
-#define OP1(insn, oper1) OP2(insn, oper1, NONE)
-#define OP0(insn) OP1(insn, NONE)
-#define OP_EMPTY OP0(NONE)
-#define OP_EMPTY_4 OP_EMPTY, OP_EMPTY, OP_EMPTY, OP_EMPTY
-#define OP_EMPTY_8 OP_EMPTY_4, OP_EMPTY_4
-#endif
-
-// #define op3_flag(x, f, o0, o1, o2)                                                                                     \
-//   {                                                                                                                    \
-//     .name = #x, .flags = (f), .operands[0] = {.data = #o0}, .operands[1] = {.data = #o1},                              \
-//     .operands[2] = {.data = #o2},                                                                                      \
-//   }
-
-
-// alk
-#define op3_flag(x, f, o0, o1, o2)                                                                                     \
-  {                                                                                                                    \
-    #x, { {(#o0)[0], (#o0)[1]}, {(#o1)[0], (#o1)[1]}, {(#o2)[0], (#o2)[1]} }, (f)                                                                                   \
-  }
-#define op2_flag(x, f, o0, o1) op3_flag(x, f, o0, o1, __)
-#define op1_flag(x, f, o0) op2_flag(x, f, o0, __)
-#define op0_flag(x, f) op1_flag(x, f, __)
-
-#define op3f op3_flag
-#define op2f op2_flag
-#define op1f op1_flag
-#define op0f op0_flag
-
-#define op3(x, o0, o1, o2) op3f(x, 0, o0, o1, o2)
-#define op2(x, o0, o1) op2f(x, 0, o0, o1)
-#define op1(x, o0) op1f(x, 0, o0)
-#define op0(x) op0f(x, 0)
-
-/* Opcode extension in modrm byte reg field. */
-#define foreach_x86_insn_modrm_reg_group                                                                               \
-  _(1) _(1a) _(2) _(3) _(4) _(5) _(6) _(7) _(8) _(9) _(10) _(11) _(12) _(13) _(14) _(15) _(16) _(p)
-#define foreach_x86_insn_sse_group                                                                                     \
-  _(10) _(28) _(50) _(58) _(60) _(68) _(70) _(78) _(c0) _(d0) _(d8) _(e0) _(e8) _(f0) _(f8)
-enum {
-  X86_INSN_GROUP_START = 0,
-
-#define _(x) X86_INSN_MODRM_REG_GROUP_##x,
-  foreach_x86_insn_modrm_reg_group
-#undef _
-
-      X86_INSN_SSE_GROUP_START = 19,
-#define _(x) X86_INSN_SSE_GROUP_##x,
-  foreach_x86_insn_sse_group
-#undef _
-
-      X86_INSN_GROUP_END = 35
-};
-
-#define X86_INSN_GROUP_END_MASK ((1 << 6) - 1)
-#define X86_INSN_FLAG_SET_GROUP(n) ((n) << 5)
-#define X86_INSN_FLAG_GET_GROUP(f) (((f) >> 5) & X86_INSN_GROUP_END_MASK)
-
-enum {
-#define _(x) X86_INSN_FLAG_MODRM_REG_GROUP_##x = X86_INSN_FLAG_SET_GROUP(X86_INSN_MODRM_REG_GROUP_##x),
-  foreach_x86_insn_modrm_reg_group
-#undef _
-
-#define _(x) X86_INSN_FLAG_SSE_GROUP_##x = X86_INSN_FLAG_SET_GROUP(X86_INSN_SSE_GROUP_##x),
-      foreach_x86_insn_sse_group
-#undef _
-};
-
-// clang-format off
-
-#define foreach_x86_operand_combine(x, op1_type, op2_type)  op2(x, Eb, Gb), op2(x, Ev, Gv), op2(x, Gb, Eb), op2(x, Gv, Ev), op2(x, AL, Ib), op2(x, AX, Iz)
-
-#define foreach_x86_gp_reg _(AX) _(CX) _(DX) _(BX) _(SP) _(BP) _(SI) _(DI)
-
-#define foreach_x86_condition _(o) _(no) _(b) _(nb) _(z) _(nz) _(be) _(nbe) _(s) _(ns) _(p) _(np) _(l) _(nl) _(le) _(nle)
-
-// clang-format on
-
-#include "./x86_opcode_one_byte.c"
-#include "./x86_opcode_two_byte.c"
-
-typedef struct {
-  x86_insn_spec_t insns[8];
-} x86_insn_group8_t;
-
-#include "./x86_opcode_modrm_reg_group.c"
-#include "./x86_opcode_sse_group.c"
-
-#include "./x86_insn_reader.c"
-
-static x86_insn_prefix_t x86_insn_decode_prefix(x86_insn_reader_t *rd, x86_insn_decode_t *insn, x86_options_t *conf) {
-  /* Decode each byte until the byte is not a prefix or is an REX prefix,
-   * because an REX prefix is required to immediately preceed the opcode.
-   */
-  x86_insn_prefix_t insn_prefix = 0;
-  for (;;) {
-    uint8_t c = peek_byte(rd);
-    x86_insn_prefix_t t = 0;
-
-    /* Check for REX prefix if we're in 64-bit mode. */
-    if (conf->mode == 64) {
-      if (c >= 0x40 && c <= 0x4f) {
-        uint8_t rex = read_byte(rd);
-
-        if (REX_W(rex)) {
-          insn->flags |= X86_INSN_DECODE_FLAG_OPERAND_SIZE_64;
-        }
-
-        insn->rex = rex;
-
-        break;
-      }
-    }
-
-    /* Check for legacy prefixes. */
-    switch (c) {
-    case 0xF0:
-      t = INSN_PREFIX_LOCK;
-      break;
-    case 0xF2:
-      t = INSN_PREFIX_REPNE;
-      break;
-    case 0xF3:
-      t = INSN_PREFIX_REPE;
-      break;
-    case 0x2E:
-      t = INSN_PREFIX_CS;
-      break;
-    case 0x36:
-      t = INSN_PREFIX_SS;
-      break;
-    case 0x3E:
-      t = INSN_PREFIX_DS;
-      break;
-    case 0x26:
-      t = INSN_PREFIX_ES;
-      break;
-    case 0x64:
-      t = INSN_PREFIX_FS;
-      break;
-    case 0x65:
-      t = INSN_PREFIX_GS;
-      break;
-    case 0x66:
-      t = INSN_PREFIX_OPERAND_SIZE;
-      break;
-    case 0x67:
-      t = INSN_PREFIX_ADDRESS_SIZE;
-      break;
-    }
-    if (t == 0)
-      break;
-
-    /* Consume 1 byte. */
-    read_byte(rd);
-    insn_prefix |= t;
-  }
-
-  return insn_prefix;
-}
-
-int x86_insn_has_modrm_byte(x86_insn_spec_t *insn) {
-  int i;
-  for (i = 0; i < sizeof(insn->operands) / sizeof(x86_insn_operand_spec_t); i++)
-    switch (insn->operands[i].code) {
-    case 'G':
-    case 'E':
-    case 'M':
-    case 'R':
-      return 1;
-    }
-  return 0;
-}
-
-int x86_insn_immediate_type(x86_insn_spec_t *insn) {
-  int i;
-  for (i = 0; i < sizeof(insn->operands); i++) {
-    switch (insn->operands[i].code) {
-    case 'J':
-    case 'I':
-    case 'O':
-      return insn->operands[i].type;
-    }
-  }
-  return 0;
-}
-
-int x86_insn_has_immediate(x86_insn_spec_t *insn) {
-  int i;
-  for (i = 0; i < sizeof(insn->operands) / sizeof(x86_insn_operand_spec_t); i++) {
-    switch (insn->operands[i].code) {
-    case 'J':
-    case 'I':
-    case 'O':
-      return 1;
-    }
-  }
-  return 0;
-}
-
-static uint8_t *x86_insn_decode_number(x86_insn_reader_t *rd, uint8_t number_bits, int64_t *out_number) {
-  int64_t disp = 0;
-  switch (number_bits) {
-  case 64:
-    disp = read_uint64(rd);
-    break;
-  case 32:
-    disp = read_uint32(rd);
-    break;
-  case 16:
-    disp = read_uint16(rd);
-    break;
-  case 8:
-    disp = read_uint8(rd);
-    break;
-  default:
-    UNREACHABLE();
-  }
-
-  *out_number = disp;
-  return NULL;
-}
-
-void x86_insn_decode_modrm_sib(x86_insn_reader_t *rd, x86_insn_decode_t *insn, x86_options_t *conf) {
-  uint8_t mod, rm, reg;
-
-  x86_insn_modrm_t modrm;
-  modrm.byte = read_byte(rd);
-  insn->modrm = modrm;
-
-  mod = modrm.mode;
-  rm = (REX_B(insn->rex) << 3) | modrm.rm;
-  reg = (REX_R(insn->rex) << 3) | modrm.reg;
-
-  x86_insn_operand_t *reg_op = &insn->operands[0];
-  x86_insn_operand_t *mem_op = &insn->operands[1];
-
-  reg_op->reg = reg;
-
-  if (mod == 3) {
-    mem_op->reg = rm;
-    return;
-  }
-
-  uint8_t disp_bits = -1;
-
-  insn->flags |= X86_INSN_DECODE_FLAG_IS_ADDRESS;
-
-  uint8_t effective_address_bits;
-  if (conf->mode == 64)
-    effective_address_bits = (insn->prefix & INSN_PREFIX_ADDRESS_SIZE) ? 32 : 64;
-  else if (conf->mode == 32)
-    effective_address_bits = (insn->prefix & INSN_PREFIX_ADDRESS_SIZE) ? 16 : 32;
-  else {
-    FATAL("16-bit address mode not supported");
-  }
-
-  if (effective_address_bits == 32 || effective_address_bits == 64) {
-    mem_op->mem.base = rm;
-
-    insn->flags |= X86_INSN_DECODE_FLAG_HAS_BASE;
-
-    if (mod == 0 && (rm & 7) == 5) {
-      insn->flags = X86_INSN_DECODE_FLAG_IP_RELATIVE;
-      mem_op->mem.base = RIP;
-      disp_bits = 32;
-    } else if (mod == 0) {
-      disp_bits = 0;
-    } else if (mod == 1) {
-      disp_bits = 8;
-    } else if (mod == 2) {
-      disp_bits = 32;
-    } else {
-      disp_bits = 0;
-    }
-
-    uint8_t has_sib = 0;
-    if ((rm & 7) == 4) {
-      ASSERT(modrm.rm == (rm & 7));
-      has_sib = 1;
-    }
-
-    if (has_sib) {
-      x86_insn_sib_t sib = {0};
-      sib.byte = read_byte(rd);
-      insn->sib = sib;
-
-      uint8_t base = sib.base | (REX_B(insn->rex) << 3);
-      uint8_t index = sib.index | (REX_X(insn->rex) << 3);
-      uint8_t scale = 1 << sib.log2_scale;
-
-      insn->flags |= X86_INSN_DECODE_FLAG_HAS_BASE;
-
-      if (sib.index != X86_INSN_GP_REG_SP) {
-        insn->flags |= X86_INSN_DECODE_FLAG_HAS_INDEX;
-      }
-
-      insn->operands[1].mem.base = base;
-      insn->operands[1].mem.index = index;
-      insn->operands[1].mem.scale = scale;
-
-      if (sib.index == X86_INSN_GP_REG_SP) {
-        insn->operands[1].mem.index = RNone;
-        insn->operands[1].mem.scale = 0;
-      }
-
-      // for 64 bit
-      if (effective_address_bits == 64) {
-        if (mem_op->mem.base == RBP || mem_op->mem.base == R13) {
-          if (mod == 0) {
-            mem_op->mem.base = RNone;
-          }
-          if (mod == 1) {
-            disp_bits = 8;
-          } else {
-            disp_bits = 32;
-          }
-        }
-
-        if (sib.index != X86_INSN_GP_REG_SP) {
-          insn->flags |= X86_INSN_DECODE_FLAG_HAS_INDEX;
-        }
-      }
-
-      // for 32 bit
-      if (effective_address_bits == 32) {
-        if (mem_op->mem.base == RBP) {
-          if (mod == 0) {
-            mem_op->mem.base = RNone;
-          }
-          if (mod == 1) {
-            disp_bits = 8;
-          } else {
-            disp_bits = 32;
-          }
-        }
-      }
-    }
-  }
-
-  // for 16 bit
-  if (effective_address_bits == 16) {
-    switch (modrm.mode) {
-    case 0:
-      if (modrm.rm == 6) {
-        /* [disp16] */
-        disp_bits = 16;
-        break;
-      }
-      /* fall through */
-    case 1:
-    case 2:
-      switch (modrm.rm) {
-      case 0: /* [bx + si/di] */
-      case 1:
-        mem_op->mem.base = X86_INSN_GP_REG_BX;
-        mem_op->mem.index = X86_INSN_GP_REG_SI + (modrm.rm & 1);
-        insn->flags |= X86_INSN_DECODE_FLAG_HAS_BASE | X86_INSN_DECODE_FLAG_HAS_INDEX;
-        break;
-
-      case 2: /* [bp + si/di] */
-      case 3:
-        mem_op->mem.base = X86_INSN_GP_REG_BP;
-        mem_op->mem.index = X86_INSN_GP_REG_SI + (modrm.rm & 1);
-        insn->flags |= X86_INSN_DECODE_FLAG_HAS_BASE | X86_INSN_DECODE_FLAG_HAS_INDEX;
-        break;
-
-      case 4: /* [si/di] */
-      case 5:
-        mem_op->mem.base = X86_INSN_GP_REG_SI + (modrm.rm & 1);
-        insn->flags |= X86_INSN_DECODE_FLAG_HAS_BASE;
-        break;
-
-      case 6: /* [bp + disp] */
-        mem_op->mem.base = X86_INSN_GP_REG_BP;
-        insn->flags |= X86_INSN_DECODE_FLAG_HAS_BASE;
-        break;
-
-      case 7: /* [bx + disp] */
-        mem_op->mem.base = X86_INSN_GP_REG_BX;
-        insn->flags |= X86_INSN_DECODE_FLAG_HAS_BASE;
-        break;
-      }
-
-      if (modrm.mode != 0)
-        disp_bits = modrm.mode == 1 ? 8 : 16;
-      break;
-    }
-  }
-
-  if (disp_bits != 0) {
-    // update displacement offset
-    insn->displacement_offset = reader_offset(rd);
-
-    int64_t disp;
-    x86_insn_decode_number(rd, disp_bits, &disp);
-    mem_op->mem.disp = (uint32_t)disp;
-  }
-}
-
-/* Decodes the opcode of an instruction and returns its encoding
- * specification.
- */
-static void x86_insn_decode_opcode(x86_insn_reader_t *rd, x86_insn_decode_t *insn, x86_options_t *conf) {
-  uint8_t opcode = read_byte(rd);
-
-  x86_insn_spec_t insn_spec;
-  if (opcode == 0x0f) {
-    opcode = read_byte(rd);
-    insn_spec = x86_opcode_map_two_byte[opcode];
-  } else {
-    insn_spec = x86_opcode_map_one_byte[opcode];
-  }
-
-  DLOG(0, "[x86 insn] opcode operands code %c %c %c", insn_spec.operands[0].code, insn_spec.operands[1].code, insn_spec.operands[2].code);
-  DLOG(0, "[x86 insn] opcode operands type %c %c %c", insn_spec.operands[0].type, insn_spec.operands[1].type, insn_spec.operands[2].type);
-
-  // check sse group
-  if (X86_INSN_FLAG_GET_GROUP(insn_spec.flags) > X86_INSN_SSE_GROUP_START) {
-    UNIMPLEMENTED();
-  }
-
-  if (X86_INSN_FLAG_GET_GROUP(insn_spec.flags) > X86_INSN_GROUP_START &&
-      X86_INSN_FLAG_GET_GROUP(insn_spec.flags) < X86_INSN_SSE_GROUP_START) {
-    // get group index
-    int group_ndx = X86_INSN_FLAG_GET_GROUP(insn_spec.flags);
-
-    // get gp insn index in group
-    x86_insn_modrm_t modrm;
-    modrm.byte = peek_byte(rd);
-    int insn_ndx = modrm.reg;
-
-    // get insn in group
-    x86_insn_spec_t *group_insn = NULL;
-    group_insn = &x86_insn_modrm_reg_groups[group_ndx].insns[insn_ndx];
-
-    // update the insn spec
-    insn_spec.name = group_insn->name;
-    insn_spec.flags = group_insn->flags;
-  }
-
-  insn->primary_opcode = opcode;
-  insn->insn_spec = insn_spec;
-}
-
-uint8_t x86_insn_imm_bits(x86_insn_spec_t *insn, uint8_t operand_bits) {
-  uint8_t imm_bits = 0;
-  switch (x86_insn_immediate_type(insn)) {
-  case 'b':
-    imm_bits = 8;
-    break;
-  case 'w':
-    imm_bits = 16;
-    break;
-  case 'd':
-    imm_bits = 32;
-    break;
-  case 'q':
-    imm_bits = 64;
-    break;
-
-  case 'z':
-    imm_bits = operand_bits;
-    if (imm_bits == 64)
-      imm_bits = 32;
-    break;
-
-  case 'v':
-    imm_bits = operand_bits;
-    break;
-
-  default:
-    imm_bits = 0;
-    break;
-  }
-
-  return imm_bits;
-}
-
-void x86_insn_decode_immediate(x86_insn_reader_t *rd, x86_insn_decode_t *insn, x86_options_t *conf) {
-  uint8_t effective_operand_bits;
-  if (conf->mode == 64 || conf->mode == 32) {
-    effective_operand_bits = (insn->prefix & INSN_PREFIX_OPERAND_SIZE) ? 16 : 32;
-  }
-
-  if (insn->flags & X86_INSN_DECODE_FLAG_OPERAND_SIZE_64)
-    effective_operand_bits = 64;
-
-  if (conf->mode == 64 && insn->insn_spec.flags & X86_INSN_SPEC_DEFAULT_64_BIT)
-    effective_operand_bits = 64;
-
-  int64_t immediate = 0;
-  uint8_t imm_bits = x86_insn_imm_bits(&insn->insn_spec, effective_operand_bits);
-  if (imm_bits == 0)
-    return;
-
-  // update immediate offset
-  insn->immediate_offset = reader_offset(rd);
-
-  x86_insn_decode_number(rd, imm_bits, &immediate);
-  insn->immediate = immediate;
-}
-
-void x86_insn_decode(x86_insn_decode_t *insn, uint8_t *buffer, x86_options_t *conf) {
-	set_x86_insn_modrm_reg_groups();
-	set_x86_opcode_map_two_byte();
-	set_x86_insn_sse_groups_repz();
-	set_x86_opcode_map_one_byte();
-  // init reader
-  x86_insn_reader_t rd;
-  init_reader(&rd, buffer, buffer + 15);
-
-  // decode prefix
-  insn->prefix = x86_insn_decode_prefix(&rd, insn, conf);
-
-  // decode insn specp/x in
-  x86_insn_decode_opcode(&rd, insn, conf);
-
-  if (x86_insn_has_modrm_byte(&insn->insn_spec)) {
-  	DLOG(0, "[x86 insn] %s has modrm", insn->insn_spec.name);
-    // decode insn modrm sib (operand register, disp)
-    x86_insn_decode_modrm_sib(&rd, insn, conf);
-  }
-
-  if (x86_insn_has_immediate(&insn->insn_spec)) {
-  	DLOG(0, "[x86 insn] %s has immediate", insn->insn_spec.name);
-    // decode insn immeidate
-    x86_insn_decode_immediate(&rd, insn, conf);
-  }
-
-#if 1
-  DLOG(0, "[x86 insn] %s", insn->insn_spec.name);
-#endif
-
-  // set insn length
-  insn->length = rd.buffer_cursor - rd.buffer;
-}
diff --git a/loader/dobby/source/InstructionRelocation/x86/x86_insn_decode/x86_insn_decode.h b/loader/dobby/source/InstructionRelocation/x86/x86_insn_decode/x86_insn_decode.h
deleted file mode 100644
index 80cc76b2..00000000
--- a/loader/dobby/source/InstructionRelocation/x86/x86_insn_decode/x86_insn_decode.h
+++ /dev/null
@@ -1,201 +0,0 @@
-#ifndef X86_INSN_DECODE_H
-#define X86_INSN_DECODE_H
-
-#include <stdint.h>
-#include "common_header.h"
-
-typedef enum {
-  X86_INSN_SPEC_DEFAULT_64_BIT = 1 << 0,
-} x86_insn_spec_flag_t;
-
-typedef enum {
-  X86_INSN_DECODE_FLAG_HAS_BASE = 1 << 0,
-
-  X86_INSN_DECODE_FLAG_HAS_INDEX = 1 << 1,
-
-  X86_INSN_DECODE_FLAG_IS_ADDRESS = 1 << 2,
-
-  X86_INSN_DECODE_FLAG_IP_RELATIVE = 1 << 3,
-
-  X86_INSN_DECODE_FLAG_OPERAND_SIZE_64 = 1 << 4,
-} x86_insn_decode_flag_t;
-
-typedef enum {
-  INSN_PREFIX_NONE = 0,
-
-  /* Group 1: lock and repeat prefixes */
-  INSN_PREFIX_GROUP1 = 0x07,
-  INSN_PREFIX_LOCK = 0x01,  /* F0 */
-  INSN_PREFIX_REPNZ = 0x02, /* F2 */
-  INSN_PREFIX_REPNE = INSN_PREFIX_REPNZ,
-  INSN_PREFIX_REP = 0x04, /* F3 */
-  INSN_PREFIX_REPZ = INSN_PREFIX_REP,
-  INSN_PREFIX_REPE = INSN_PREFIX_REPZ,
-
-  /* Group 2: segment override or branch hints */
-  INSN_PREFIX_GROUP2 = 0x01f8,
-  INSN_PREFIX_ES = 0x0008,                       /* 26 */
-  INSN_PREFIX_CS = 0x0010,                       /* 2E */
-  INSN_PREFIX_SS = 0x0020,                       /* 36 */
-  INSN_PREFIX_DS = 0x0040,                       /* 3E */
-  INSN_PREFIX_FS = 0x0080,                       /* 64 */
-  INSN_PREFIX_GS = 0x0100,                       /* 65 */
-  INSN_PREFIX_BRANCH_TAKEN = INSN_PREFIX_CS,     /* 2E */
-  INSN_PREFIX_BRANCH_NOT_TAKEN = INSN_PREFIX_DS, /* 3E */
-
-  /* Group 3: operand-size override */
-  INSN_PREFIX_OPERAND_SIZE = 0x0200, /* 66 */
-
-  /* Group 4: address-size override */
-  INSN_PREFIX_ADDRESS_SIZE = 0x0400 /* 67 */
-} x86_insn_prefix_t;
-
-typedef union {
-  struct {
-    uint8_t code;
-    uint8_t type;
-  };
-  uint8_t data[2];
-} x86_insn_operand_spec_t;
-
-typedef struct {
-  // insn name
-  char *name;
-
-  // insn max 3 operands
-  x86_insn_operand_spec_t operands[3];
-
-  // insn flag
-  uint16_t flags;
-#define X86_INSN_FLAG_SET_SSE_GROUP(n) ((n) << 5)
-#define X86_INSN_FLAG_GET_SSE_GROUP(f) (((f) >> 5) & 0x1f)
-#define X86_INSN_FLAG_SET_MODRM_REG_GROUP(n) (((n)&0x3f) << 10)
-#define X86_INSN_FLAG_GET_MODRM_REG_GROUP(f) (((f) >> 10) & 0x3f)
-} x86_insn_spec_t;
-
-#define foreach_x86_gp_register _(AX) _(CX) _(DX) _(BX) _(SP) _(BP) _(SI) _(DI)
-
-typedef enum {
-#define _(r) X86_INSN_GP_REG_##r,
-  foreach_x86_gp_register
-#undef _
-} x86_insn_gp_register_t;
-
-typedef enum {
-  RNone = 0,
-  RAX,
-  RBX,
-  RCX,
-  RDX,
-  RDI,
-  RSI,
-  RBP,
-  RSP,
-  R8,
-  R9,
-  R10,
-  R11,
-  R12,
-  R13,
-  R14,
-  R15,
-  RIP
-} x86_ia32e_register_t;
-
-typedef union {
-  struct {
-    uint8_t rm : 3;
-    uint8_t reg : 3;
-    uint8_t mode : 2;
-  };
-  uint8_t byte;
-} x86_insn_modrm_t;
-
-typedef union {
-  struct {
-    uint8_t base : 3;
-    uint8_t index : 3;
-    uint8_t log2_scale : 2;
-  };
-  uint8_t byte;
-} x86_insn_sib_t;
-
-typedef struct {
-  uint8_t reg;
-
-  struct {
-    uint8_t base;
-    uint8_t index;
-    uint8_t scale;
-    uint32_t disp;
-  } mem;
-} x86_insn_operand_t;
-
-typedef struct x86_insn_decode_t {
-  // insn flag
-  uint32_t flags;
-
-  // insn length
-  uint32_t length;
-
-  // insn displacement offset
-  uint8_t displacement_offset;
-
-  // insn immediate offset
-  uint8_t immediate_offset;
-
-  // Registers in instruction
-  // [0] is modrm reg field
-  // [1] is base reg
-  // [2] is index reg
-  //  union {
-  //    struct {
-  //      uint8_t modrm_reg;
-  //      uint8_t op_base_reg;
-  //      uint8_t op_index_reg;
-  //    };
-  //    uint8_t regs[3];
-  //  };
-
-  x86_insn_operand_t operands[3];
-
-  struct { // insn field combine
-    // insn prefix
-    x86_insn_prefix_t prefix;
-
-    // insn rex
-    uint8_t rex;
-
-    // insn primary opcode
-    uint8_t primary_opcode;
-
-    // insn modrm
-    x86_insn_modrm_t modrm;
-
-    // insn sib
-    x86_insn_sib_t sib;
-
-    // insn operand imm
-    int64_t immediate;
-  };
-
-  // insn pre-spec
-  x86_insn_spec_t insn_spec;
-} x86_insn_decode_t;
-
-typedef struct x86_options_t {
-  int mode; /* 16, 32 or 64 bit */
-} x86_options_t;
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-void x86_insn_decode(x86_insn_decode_t *insn, uint8_t *buffer, x86_options_t *conf);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/loader/dobby/source/InstructionRelocation/x86/x86_insn_decode/x86_insn_reader.c b/loader/dobby/source/InstructionRelocation/x86/x86_insn_decode/x86_insn_reader.c
deleted file mode 100644
index cfea5341..00000000
--- a/loader/dobby/source/InstructionRelocation/x86/x86_insn_decode/x86_insn_reader.c
+++ /dev/null
@@ -1,87 +0,0 @@
-/* Specialized instruction reader. */
-typedef struct x86_insn_reader_t {
-  const unsigned char *prefix; /* pointer to beginning of instruction */
-  const unsigned char *opcode; /* pointer to opcode */
-  const unsigned char *modrm;  /* pointer to modrm byte */
-
-  unsigned char        buffer[20];    /* buffer used when few bytes left */
-  const unsigned char *buffer_cursor; /* pointer to buffer_cursor of insn + 1 */
-} x86_insn_reader_t;
-
-/* Initializes a bytecode reader to read code from a given part of memory. */
-static void init_reader(x86_insn_reader_t *rd, const unsigned char *begin, const unsigned char *buffer_cursor) {
-  if (buffer_cursor - begin < sizeof(rd->buffer)) {
-    memset(rd->buffer, 0xcc, sizeof(rd->buffer)); /* debug token */
-    memcpy(rd->buffer, begin, buffer_cursor - begin);
-    rd->prefix = rd->buffer;
-  } else {
-    rd->prefix = begin;
-  }
-  rd->opcode = rd->modrm = rd->buffer_cursor = rd->prefix;
-}
-
-uint32_t reader_offset(x86_insn_reader_t *rd) {
-  return rd->buffer_cursor - rd->buffer;
-}
-
-static uint8_t peek_byte(const x86_insn_reader_t *rd) {
-  return *rd->buffer_cursor;
-}
-
-#define read_uint8 read_byte
-static uint8_t read_byte(x86_insn_reader_t *rd) {
-  DLOG(0, "[x86 insn reader] %p - 1", rd->buffer_cursor);
-
-  const unsigned char *p = rd->buffer_cursor;
-  rd->buffer_cursor++;
-  return *p;
-}
-
-#define read_uint16 read_word
-static uint16_t read_word(x86_insn_reader_t *rd) {
-  DLOG(0, "[x86 insn reader] %p - 2", rd->buffer_cursor);
-
-  const unsigned char *p = rd->buffer_cursor;
-  rd->buffer_cursor += 2;
-  return (uint16_t)p[0] | ((uint16_t)p[1] << 8);
-}
-
-#define read_uint32 read_dword
-static uint32_t read_dword(x86_insn_reader_t *rd) {
-  DLOG(0, "[x86 insn reader] %p - 4", rd->buffer_cursor);
-
-  const unsigned char *p = rd->buffer_cursor;
-  rd->buffer_cursor += 4;
-  return (uint32_t)p[0] | ((uint32_t)p[1] << 8) | ((uint32_t)p[2] << 16) | ((uint32_t)p[3] << 24);
-}
-
-#define read_uint64 read_qword
-static uint64_t read_qword(x86_insn_reader_t *rd) {
-  DLOG(0, "[x86 insn reader] %p - 8", rd->buffer_cursor);
-
-  uint64_t *p = (uint64_t *)rd->buffer_cursor;
-  rd->buffer_cursor += 4;
-  return p[0];
-}
-
-static uint32_t read_imm(x86_insn_reader_t *rd, int size) {
-  DLOG(0, "[x86 insn reader] %p", rd->buffer_cursor);
-
-  return (size == 8) ? read_byte(rd) : (size == 16) ? read_word(rd) : (size == 32) ? read_dword(rd) : 0;
-}
-
-static unsigned char read_modrm(x86_insn_reader_t *rd) {
-  if (rd->buffer_cursor == rd->modrm)
-    rd->buffer_cursor++;
-  return *rd->modrm;
-}
-
-/* Marks the next byte as ModR/M. */
-static void continue_modrm(x86_insn_reader_t *rd) {
-  rd->modrm = rd->buffer_cursor;
-}
-
-/* Marks the next byte as opcode. */
-static void continue_opcode(x86_insn_reader_t *rd) {
-  rd->modrm = rd->opcode = rd->buffer_cursor;
-}
diff --git a/loader/dobby/source/InstructionRelocation/x86/x86_insn_decode/x86_opcode_modrm_reg_group.c b/loader/dobby/source/InstructionRelocation/x86/x86_insn_decode/x86_opcode_modrm_reg_group.c
deleted file mode 100644
index a139bade..00000000
--- a/loader/dobby/source/InstructionRelocation/x86/x86_insn_decode/x86_opcode_modrm_reg_group.c
+++ /dev/null
@@ -1,224 +0,0 @@
-/* Escape groups are indexed by modrm reg field. */
-static x86_insn_group8_t x86_insn_modrm_reg_groups[256];
-void set_x86_insn_modrm_reg_groups() {
-	x86_insn_group8_t ret[] = {
-    [X86_INSN_MODRM_REG_GROUP_1].insns =
-        {
-            op0(add),
-            op0(or),
-            op0(adc),
-            op0(sbb),
-            op0(and),
-            op0(sub),
-            op0(xor),
-            op0(cmp),
-        },
-
-    [X86_INSN_MODRM_REG_GROUP_1a].insns =
-        {
-            op0f(pop, X86_INSN_SPEC_DEFAULT_64_BIT),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-        },
-
-    [X86_INSN_MODRM_REG_GROUP_2].insns =
-        {
-            op0(rol),
-            op0(ror),
-            op0(rcl),
-            op0(rcr),
-            op0(shl),
-            op0(shr),
-            op0(sal),
-            op0(sar),
-        },
-
-    [X86_INSN_MODRM_REG_GROUP_3].insns =
-        {
-            op0(test),
-            op0(test),
-            op0(not ),
-            op0(neg),
-            op0(mul),
-            op0(imul),
-            op0(div),
-            op0(idiv),
-        },
-
-    [X86_INSN_MODRM_REG_GROUP_4].insns =
-        {
-            op0(inc),
-            op0(dec),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-        },
-
-    [X86_INSN_MODRM_REG_GROUP_5].insns =
-        {
-            op1(inc, Ev),
-            op1(dec, Ev),
-            op1f(call, X86_INSN_SPEC_DEFAULT_64_BIT, Ev),
-            op1(call, Mp),
-            op1f(jmp, X86_INSN_SPEC_DEFAULT_64_BIT, Ev),
-            op1(jmp, Mp),
-            op1f(push, X86_INSN_SPEC_DEFAULT_64_BIT, Ev),
-            op0(bad),
-        },
-
-    [X86_INSN_MODRM_REG_GROUP_6].insns =
-        {
-            op1(sldt, Ev),
-            op1(str, Ev),
-            op1(lldt, Ev),
-            op1(ltr, Ev),
-            op1(verr, Ev),
-            op1(verw, Ev),
-            op0(bad),
-            op0(bad),
-        },
-
-    [X86_INSN_MODRM_REG_GROUP_7].insns =
-        {
-            op1(sgdt, Mv),
-            op1(sidt, Mv),
-            op1(lgdt, Mv),
-            op1(lidt, Mv),
-            op1(smsw, Ev),
-            op0(bad),
-            op1(lmsw, Ew),
-            op1(invlpg, Mv),
-        },
-
-    [X86_INSN_MODRM_REG_GROUP_8].insns =
-        {
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op2(bt, Ev, Ib),
-            op2(bts, Ev, Ib),
-            op2(btr, Ev, Ib),
-            op2(btc, Ev, Ib),
-        },
-
-    [X86_INSN_MODRM_REG_GROUP_9].insns =
-        {
-            op0(bad),
-            op1(cmpxchg, Mx),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-        },
-
-    [X86_INSN_MODRM_REG_GROUP_10].insns =
-        {
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-        },
-
-    [X86_INSN_MODRM_REG_GROUP_11].insns =
-        {
-            op0(mov),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-        },
-
-    [X86_INSN_MODRM_REG_GROUP_12].insns =
-        {
-            op0(bad),
-            op0(bad),
-            op2(psrlw, Rm, Ib),
-            op0(bad),
-            op2(psraw, Rm, Ib),
-            op0(bad),
-            op2(psllw, Rm, Ib),
-            op0(bad),
-        },
-
-    [X86_INSN_MODRM_REG_GROUP_13].insns =
-        {
-            op0(bad),
-            op0(bad),
-            op2(psrld, Rm, Ib),
-            op0(bad),
-            op2(psrad, Rm, Ib),
-            op0(bad),
-            op2(pslld, Rm, Ib),
-            op0(bad),
-        },
-
-    [X86_INSN_MODRM_REG_GROUP_14].insns =
-        {
-            op0(bad),
-            op0(bad),
-            op2(psrlq, Rm, Ib),
-            op0f(bad, 0),
-            op0(bad),
-            op0(bad),
-            op2(psllq, Rm, Ib),
-            op0f(bad, 0),
-        },
-
-    [X86_INSN_MODRM_REG_GROUP_15].insns =
-        {
-            op1(fxsave, Mv),
-            op1(fxrstor, Mv),
-            op1(ldmxcsr, Mv),
-            op1(stmxcsr, Mv),
-            op0(bad),
-            op1(lfence, Mv),
-            op1(mfence, Mv),
-            op1(sfence, Mv),
-        },
-
-    [X86_INSN_MODRM_REG_GROUP_16].insns =
-        {
-            op1(prefetch_nta, Mv),
-            op1(prefetch_t0, Mv),
-            op1(prefetch_t1, Mv),
-            op1(prefetch_t2, Mv),
-            op1(prefetch_nop, Mv),
-            op1(prefetch_nop, Mv),
-            op1(prefetch_nop, Mv),
-            op1(prefetch_nop, Mv),
-        },
-
-    [X86_INSN_MODRM_REG_GROUP_p].insns =
-        {
-            op1(prefetch_exclusive, Mv),
-            op1(prefetch_modified, Mv),
-            op1(prefetch_nop, Mv),
-            op1(prefetch_modified, Mv),
-            op1(prefetch_nop, Mv),
-            op1(prefetch_nop, Mv),
-            op1(prefetch_nop, Mv),
-            op1(prefetch_nop, Mv),
-        },
-};
-
-
-	memcpy((void*)x86_insn_modrm_reg_groups, (void*)ret, sizeof(ret));
-}
diff --git a/loader/dobby/source/InstructionRelocation/x86/x86_insn_decode/x86_opcode_one_byte.c b/loader/dobby/source/InstructionRelocation/x86/x86_insn_decode/x86_opcode_one_byte.c
deleted file mode 100644
index f72fb71d..00000000
--- a/loader/dobby/source/InstructionRelocation/x86/x86_insn_decode/x86_opcode_one_byte.c
+++ /dev/null
@@ -1,221 +0,0 @@
-// clang-format off
-static x86_insn_spec_t x86_opcode_map_one_byte[256];
-void set_x86_opcode_map_one_byte() {
-	x86_insn_spec_t ret[256] = {
-    /* 0x00 */
-    foreach_x86_operand_combine(add, op_dst, op_src),
-    op0(push_es),
-    op0f(pop_es, X86_INSN_SPEC_DEFAULT_64_BIT),
-    foreach_x86_operand_combine(or, op_dst, op_src),
-    op0f(push_cs, X86_INSN_SPEC_DEFAULT_64_BIT),
-    op0(escape_two_byte),
-
-    /* 0x10 */
-    foreach_x86_operand_combine(adc, op_dst, op_src),
-    op0(push_ss),
-    op0(pop_ss),
-    foreach_x86_operand_combine(sbb, op_dst, op_src),
-    op0(push_ds),
-    op0(pop_ds),
-
-    /* 0x20 */
-    foreach_x86_operand_combine(and, op_dst, op_src),
-    op0(segment_es),
-    op0(daa),
-    foreach_x86_operand_combine(sub, op_dst, op_src),
-    op0(segment_cs),
-    op0(das),
-
-    /* 0x30 */
-    foreach_x86_operand_combine(xor, op_dst, op_src),
-    op0(segment_ss),
-    op0(aaa),
-    foreach_x86_operand_combine(cmp, op_src, op_src),
-    op0(segment_ds),
-    op0(aas),
-
-/* 0x40 */
-#define _(r) op1(inc, r),
-    foreach_x86_gp_reg
-#undef _
-#define _(r) op1(dec, r),
-    foreach_x86_gp_reg
-#undef _
-
-/* 0x50 */
-#define _(r) op1f(push, X86_INSN_SPEC_DEFAULT_64_BIT, r),
-    foreach_x86_gp_reg
-#undef _
-#define _(r) op1f(pop, X86_INSN_SPEC_DEFAULT_64_BIT, r),
-    foreach_x86_gp_reg
-#undef _
-
-    /* 0x60 */
-    op0(pusha),
-    op0(popa),
-    op2(bound, Gv, Ma),
-    op2(movsxd, Gv, Ed),
-    op0(segment_fs),
-    op0(segment_gs),
-    op0(operand_type),
-    op0(address_size),
-    op1f(push, X86_INSN_SPEC_DEFAULT_64_BIT, Iz),
-    op3(imul, Gv, Ev, Iz),
-    op1f(push, X86_INSN_SPEC_DEFAULT_64_BIT, Ib),
-    op3(imul, Gv, Ev, Ib),
-    op1(insb, DX),
-    op1(insw, DX),
-    op1(outsb, DX),
-    op1(outsw, DX),
-
-/* 0x70 */
-#define _(x) op1(j##x, Jb),
-    foreach_x86_condition
-#undef _
-
-    /* 0x80 */
-    op2f(modrm_group_1, X86_INSN_FLAG_MODRM_REG_GROUP_1, Eb, Ib),
-    op2f(modrm_group_1, X86_INSN_FLAG_MODRM_REG_GROUP_1, Ev, Iz),
-    op2f(modrm_group_1, X86_INSN_FLAG_MODRM_REG_GROUP_1, Eb, Ib),
-    op2f(modrm_group_1, X86_INSN_FLAG_MODRM_REG_GROUP_1, Ev, Ib),
-    op2(test, Eb, Gb),
-    op2(test, Ev, Gv),
-    op2(xchg, Eb, Gb),
-    op2(xchg, Ev, Gv),
-    op2(mov, Eb, Gb),
-    op2(mov, Ev, Gv),
-    op2(mov, Gb, Eb),
-    op2(mov, Gv, Ev),
-    op2(mov, Ev, Sw),
-    op2(lea, Gv, Ev),
-    op2(mov, Sw, Ew),
-    op1f(modrm_group_1a, X86_INSN_FLAG_MODRM_REG_GROUP_1a, Ev),
-
-    /* 0x90 */
-    op0(nop),
-    op1(xchg, CX),
-    op1(xchg, DX),
-    op1(xchg, BX),
-    op1(xchg, SP),
-    op1(xchg, BP),
-    op1(xchg, SI),
-    op1(xchg, DI),
-    op0(cbw),
-    op0(cwd),
-    op1(call, Ap),
-    op0(wait),
-    op0(pushf),
-    op0(popf),
-    op0(sahf),
-    op0(lahf),
-
-    /* 0xa0 */
-    op2(mov, AL, Ob),
-    op2(mov, AX, Ov),
-    op2(mov, Ob, AL),
-    op2(mov, Ov, AX),
-    op0(movsb),
-    op0(movsw),
-    op0(cmpsb),
-    op0(cmpsw),
-    op2(test, AL, Ib),
-    op2(test, AX, Iz),
-    op1(stosb, AL),
-    op1(stosw, AX),
-    op1(lodsb, AL),
-    op1(lodsw, AX),
-    op1(scasb, AL),
-    op1(scasw, AX),
-
-    /* 0xb0 */
-    op2(mov, AL, Ib),
-    op2(mov, CL, Ib),
-    op2(mov, DL, Ib),
-    op2(mov, BL, Ib),
-    op2(mov, AH, Ib),
-    op2(mov, CH, Ib),
-    op2(mov, DH, Ib),
-    op2(mov, BH, Ib),
-#define _(r) op2(mov, r, Iv),
-    foreach_x86_gp_reg
-#undef _
-
-    /* 0xc0 */
-    op2f(modrm_group_2, X86_INSN_FLAG_MODRM_REG_GROUP_2, Eb, Ib),
-    op2f(modrm_group_2, X86_INSN_FLAG_MODRM_REG_GROUP_2, Ev, Ib),
-    op1(ret, Iw),
-    op0(ret),
-    op2(les, Gz, Mp),
-    op2(lds, Gz, Mp),
-    op2f(modrm_group_11, X86_INSN_FLAG_MODRM_REG_GROUP_11, Eb, Ib),
-    op2f(modrm_group_11, X86_INSN_FLAG_MODRM_REG_GROUP_11, Ev, Iz),
-    op2(enter, Iw, Ib),
-    op0(leave),
-    op1(ret, Iw),
-    op0(ret),
-    op0(int3),
-    op1(int, Ib),
-    op0(into),
-    op0(iret),
-
-    /* 0xd0 */
-    op2f(modrm_group_2, X86_INSN_FLAG_MODRM_REG_GROUP_2, Eb, 1b),
-    op2f(modrm_group_2, X86_INSN_FLAG_MODRM_REG_GROUP_2, Ev, 1b),
-    op2f(modrm_group_2, X86_INSN_FLAG_MODRM_REG_GROUP_2, Eb, CL),
-    op2f(modrm_group_2, X86_INSN_FLAG_MODRM_REG_GROUP_2, Ev, CL),
-    op0(aam),
-    op0(aad),
-    op0(salc),
-    op0(xlat),
-    /* FIXME x87 */
-    op0(bad),
-    op0(bad),
-    op0(bad),
-    op0(bad),
-    op0(bad),
-    op0(bad),
-    op0(bad),
-    op0(bad),
-
-    /* 0xe0 */
-    op1(loopnz, Jb),
-    op1(loopz, Jb),
-    op1(loop, Jb),
-    op1(jcxz, Jb),
-    op2(in, AL, Ib),
-    op2(in, AX, Ib),
-    op2(out, Ib, AL),
-    op2(out, Ib, AX),
-    op1f(call, X86_INSN_SPEC_DEFAULT_64_BIT, Jz),
-    op1f(jmp, X86_INSN_SPEC_DEFAULT_64_BIT, Jz),
-    op1(jmp, Ap),
-    op1(jmp, Jb),
-    op2(in, AL, DX),
-    op2(in, AX, DX),
-    op2(out, DX, AL),
-    op2(out, DX, AX),
-
-    /* 0xf0 */
-    op0(lock),
-    op0(int1),
-    op0(repne),
-    op0(rep),
-    op0(hlt),
-    op0(cmc),
-    op0f(modrm_group_3, X86_INSN_FLAG_MODRM_REG_GROUP_3),
-    op0f(modrm_group_3, X86_INSN_FLAG_MODRM_REG_GROUP_3),
-    op0(clc),
-    op0(stc),
-    op0(cli),
-    op0(sti),
-    op0(cld),
-    op0(std),
-    op1f(modrm_group_4, X86_INSN_FLAG_MODRM_REG_GROUP_4, Eb),
-    op0f(modrm_group_5, X86_INSN_FLAG_MODRM_REG_GROUP_5),
-};
-
-
-	memcpy((void*) x86_opcode_map_one_byte, (void*)ret, sizeof(ret));
-}
-
-// clang-format on
diff --git a/loader/dobby/source/InstructionRelocation/x86/x86_insn_decode/x86_opcode_sse_group.c b/loader/dobby/source/InstructionRelocation/x86/x86_insn_decode/x86_opcode_sse_group.c
deleted file mode 100644
index f98903ea..00000000
--- a/loader/dobby/source/InstructionRelocation/x86/x86_insn_decode/x86_opcode_sse_group.c
+++ /dev/null
@@ -1,555 +0,0 @@
-static x86_insn_group8_t x86_insn_sse_groups_repz[256];
-static x86_insn_group8_t x86_insn_sse_groups_operand_size[256];
-static x86_insn_group8_t x86_insn_sse_groups_repnz[256];
-void set_x86_insn_sse_groups_repz() {
-	x86_insn_group8_t ret1[] = {
-    [X86_INSN_SSE_GROUP_10].insns =
-        {
-            op2(movss, Gx, Ex),
-            op2(movss, Ex, Gx),
-            op2(movsldup, Gx, Ex),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op2(movshdup, Gx, Ex),
-            op0(bad),
-        },
-
-    [X86_INSN_SSE_GROUP_28].insns =
-        {
-            op0(bad),
-            op0(bad),
-            op2(cvtsi2ss, Gx, Ev),
-            op0(bad),
-            op2(cvttss2si, Gv, Ex),
-            op2(cvtss2si, Gv, Ex),
-            op0(bad),
-            op0(bad),
-        },
-
-    [X86_INSN_SSE_GROUP_50].insns =
-        {
-            op0(bad),
-            op2(sqrtss, Gx, Ex),
-            op2(rsqrtps, Gx, Ex),
-            op2(rcpss, Gx, Ex),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-        },
-
-    [X86_INSN_SSE_GROUP_58].insns =
-        {
-            op2(addss, Gx, Ex),
-            op2(mulss, Gx, Ex),
-            op2(cvtss2sd, Gx, Ex),
-            op2(cvttps2dq, Gx, Ex),
-            op2(subss, Gx, Ex),
-            op2(minss, Gx, Ex),
-            op2(divss, Gx, Ex),
-            op2(maxss, Gx, Ex),
-        },
-
-    [X86_INSN_SSE_GROUP_60].insns =
-        {
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-        },
-
-    [X86_INSN_SSE_GROUP_68].insns =
-        {
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op2(movdqu, Gx, Ex),
-        },
-
-    [X86_INSN_SSE_GROUP_70].insns =
-        {
-            op3(pshufhw, Gx, Ex, Ib),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-        },
-
-    [X86_INSN_SSE_GROUP_78].insns =
-        {
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op2(movq, Gx, Ex),
-            op2(movdqu, Ex, Gx),
-        },
-
-    [X86_INSN_SSE_GROUP_c0].insns =
-        {
-            op0(bad),
-            op0(bad),
-            op3(cmpss, Gx, Ex, Ib),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-        },
-
-    [X86_INSN_SSE_GROUP_d0].insns =
-        {
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op2(movq2dq, Gx, Em),
-            op0(bad),
-        },
-
-    [X86_INSN_SSE_GROUP_d8].insns =
-        {
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-        },
-
-    [X86_INSN_SSE_GROUP_e0].insns =
-        {
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op2(cvtdq2pd, Gx, Ex),
-            op0(bad),
-        },
-
-    [X86_INSN_SSE_GROUP_e8].insns =
-        {
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-        },
-
-    [X86_INSN_SSE_GROUP_f0].insns =
-        {
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-        },
-
-    [X86_INSN_SSE_GROUP_f8].insns =
-        {
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-        },
-};
-
-	x86_insn_group8_t ret2[] = {
-    [X86_INSN_SSE_GROUP_10].insns =
-        {
-            op2(movupd, Gx, Ex),
-            op2(movupd, Ex, Gx),
-            op2(movlpd, Gx, Ex),
-            op2(movlpd, Ex, Gx),
-            op2(unpcklpd, Gx, Ex),
-            op2(unpckhpd, Gx, Ex),
-            op2(movhpd, Gx, Mx),
-            op2(movhpd, Mx, Gx),
-        },
-
-    [X86_INSN_SSE_GROUP_28].insns =
-        {
-            op2(movapd, Gx, Ex),
-            op2(movapd, Ex, Gx),
-            op2(cvtpi2pd, Gx, Ex),
-            op2(movntpd, Mx, Gx),
-            op2(cvttpd2pi, Gx, Mx),
-            op2(cvtpd2pi, Gx, Mx),
-            op2(ucomisd, Gx, Ex),
-            op2(comisd, Gx, Ex),
-        },
-
-    [X86_INSN_SSE_GROUP_50].insns =
-        {
-            op2(movmskpd, Gd, Rx),
-            op2(sqrtpd, Gx, Ex),
-            op0(bad),
-            op0(bad),
-            op2(andpd, Gx, Ex),
-            op2(andnpd, Gx, Ex),
-            op2(orpd, Gx, Ex),
-            op2(xorpd, Gx, Ex),
-        },
-
-    [X86_INSN_SSE_GROUP_58].insns =
-        {
-            op2(addpd, Gx, Ex),
-            op2(mulpd, Gx, Ex),
-            op2(cvtpd2ps, Gx, Ex),
-            op2(cvtps2dq, Gx, Ex),
-            op2(subpd, Gx, Ex),
-            op2(minpd, Gx, Ex),
-            op2(divpd, Gx, Ex),
-            op2(maxpd, Gx, Ex),
-        },
-
-    [X86_INSN_SSE_GROUP_60].insns =
-        {
-            op2(punpcklbw, Gx, Ex),
-            op2(punpcklwd, Gx, Ex),
-            op2(punpckldq, Gx, Ex),
-            op2(packsswb, Gx, Ex),
-            op2(pcmpgtb, Gx, Ex),
-            op2(pcmpgtw, Gx, Ex),
-            op2(pcmpgtd, Gx, Ex),
-            op2(packuswb, Gx, Ex),
-        },
-
-    [X86_INSN_SSE_GROUP_68].insns =
-        {
-            op2(punpckhbw, Gx, Ex),
-            op2(punpckhwd, Gx, Ex),
-            op2(punpckhdq, Gx, Ex),
-            op2(packssdw, Gx, Ex),
-            op2(punpcklqdq, Gx, Ex),
-            op2(punpckhqdq, Gx, Ex),
-            op2(movd, Gx, Ev),
-            op2(movdqa, Gx, Ex),
-        },
-
-    [X86_INSN_SSE_GROUP_70].insns =
-        {
-            op3(pshufd, Gx, Ex, Ib),
-            op0f(modrm_group_12, X86_INSN_FLAG_MODRM_REG_GROUP_12),
-            op0f(modrm_group_13, X86_INSN_FLAG_MODRM_REG_GROUP_13),
-            op0f(modrm_group_14, X86_INSN_FLAG_MODRM_REG_GROUP_14),
-            op2(pcmpeqb, Gx, Ex),
-            op2(pcmpeqw, Gx, Ex),
-            op2(pcmpeqd, Gx, Ex),
-            op0(bad),
-        },
-
-    [X86_INSN_SSE_GROUP_78].insns =
-        {
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op2(haddpd, Gx, Ex),
-            op2(hsubpd, Gx, Ex),
-            op2(movd, Ev, Gx),
-            op2(movdqa, Ex, Gx),
-        },
-
-    [X86_INSN_SSE_GROUP_c0].insns =
-        {
-            op0(bad),
-            op0(bad),
-            op3(cmppd, Gx, Ex, Ib),
-            op0(bad),
-            op3(pinsrw, Gx, Ew, Ib),
-            op3(pextrw, Gd, Gx, Ib),
-            op3(shufpd, Gx, Ex, Ib),
-            op0(bad),
-        },
-
-    [X86_INSN_SSE_GROUP_d0].insns =
-        {
-            op2(addsubpd, Gx, Ex),
-            op2(psrlw, Gx, Ex),
-            op2(psrld, Gx, Ex),
-            op2(psrlq, Gx, Ex),
-            op2(paddq, Gx, Ex),
-            op2(pmullw, Gx, Ex),
-            op2(movq, Ex, Gx),
-            op2(pmovmskb, Gd, Rx),
-        },
-
-    [X86_INSN_SSE_GROUP_d8].insns =
-        {
-            op2(psubusb, Gx, Ex),
-            op2(psubusw, Gx, Ex),
-            op2(pminub, Gx, Ex),
-            op2(pand, Gx, Ex),
-            op2(paddusb, Gx, Ex),
-            op2(paddusw, Gx, Ex),
-            op2(pmaxub, Gx, Ex),
-            op2(pandn, Gx, Ex),
-        },
-
-    [X86_INSN_SSE_GROUP_e0].insns =
-        {
-            op2(pavgb, Gx, Ex),
-            op2(psraw, Gx, Ex),
-            op2(psrad, Gx, Ex),
-            op2(pavgw, Gx, Ex),
-            op2(pmulhuw, Gx, Ex),
-            op2(pmulhw, Gx, Ex),
-            op2(cvttpd2dq, Gx, Ex),
-            op2(movntdq, Mx, Gx),
-        },
-
-    [X86_INSN_SSE_GROUP_e8].insns =
-        {
-            op2(psubsb, Gx, Ex),
-            op2(psubsw, Gx, Ex),
-            op2(pminsw, Gx, Ex),
-            op2(por, Gx, Ex),
-            op2(paddsb, Gx, Ex),
-            op2(paddsw, Gx, Ex),
-            op2(pmaxsw, Gx, Ex),
-            op2(pxor, Gx, Ex),
-        },
-
-    [X86_INSN_SSE_GROUP_f0].insns =
-        {
-            op0(bad),
-            op2(psllw, Gx, Ex),
-            op2(pslld, Gx, Ex),
-            op2(psllq, Gx, Ex),
-            op2(pmuludq, Gx, Ex),
-            op2(pmaddwd, Gx, Ex),
-            op2(psadbw, Gx, Ex),
-            op2(maskmovdqu, Gx, Ex),
-        },
-
-    [X86_INSN_SSE_GROUP_f8].insns =
-        {
-            op2(psubb, Gx, Ex),
-            op2(psubw, Gx, Ex),
-            op2(psubd, Gx, Ex),
-            op2(psubq, Gx, Ex),
-            op2(paddb, Gx, Ex),
-            op2(paddw, Gx, Ex),
-            op2(paddd, Gx, Ex),
-            op0(bad),
-        },
-};
-
-	x86_insn_group8_t ret3[] = {
-    [X86_INSN_SSE_GROUP_10].insns =
-        {
-            op2(movsd, Gx, Ex),
-            op2(movsd, Ex, Gx),
-            op2(movddup, Gx, Ex),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-        },
-
-    [X86_INSN_SSE_GROUP_28].insns =
-        {
-            op0(bad),
-            op0(bad),
-            op2(cvtsi2sd, Gx, Ev),
-            op0(bad),
-            op2(cvttsd2si, Gv, Ex),
-            op2(cvtsd2si, Gv, Ex),
-            op0(bad),
-            op0(bad),
-        },
-
-    [X86_INSN_SSE_GROUP_50].insns =
-        {
-            op0(bad),
-            op2(sqrtsd, Gx, Ex),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-        },
-
-    [X86_INSN_SSE_GROUP_58].insns =
-        {
-            op2(addsd, Gx, Ex),
-            op2(mulsd, Gx, Ex),
-            op2(cvtsd2ss, Gx, Ex),
-            op0(bad),
-            op2(subsd, Gx, Ex),
-            op2(minsd, Gx, Ex),
-            op2(divsd, Gx, Ex),
-            op2(maxsd, Gx, Ex),
-        },
-
-    [X86_INSN_SSE_GROUP_60].insns =
-        {
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-        },
-
-    [X86_INSN_SSE_GROUP_68].insns =
-        {
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-        },
-
-    [X86_INSN_SSE_GROUP_70].insns =
-        {
-            op3(pshuflw, Gx, Ex, Ib),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-        },
-
-    [X86_INSN_SSE_GROUP_78].insns =
-        {
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op2(haddps, Gx, Ex),
-            op2(hsubps, Gx, Ex),
-            op0(bad),
-            op0(bad),
-        },
-
-    [X86_INSN_SSE_GROUP_c0].insns =
-        {
-            op0(bad),
-            op0(bad),
-            op3(cmpsd, Gx, Ex, Ib),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-        },
-
-    [X86_INSN_SSE_GROUP_d0].insns =
-        {
-            op2(addsubps, Gx, Ex),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op2(movdq2q, Gm, Ex),
-            op0(bad),
-        },
-
-    [X86_INSN_SSE_GROUP_d8].insns =
-        {
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-        },
-
-    [X86_INSN_SSE_GROUP_e0].insns =
-        {
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op2(cvtpd2dq, Gx, Ex),
-            op0(bad),
-        },
-
-    [X86_INSN_SSE_GROUP_e8].insns =
-        {
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-        },
-
-    [X86_INSN_SSE_GROUP_f0].insns =
-        {
-            op2(lddqu, Gx, Mx),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-        },
-
-    [X86_INSN_SSE_GROUP_f8].insns =
-        {
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-            op0(bad),
-        },
-};
-
-	memcpy((void*)x86_insn_sse_groups_repz, (void*)ret1, sizeof(ret1));
-	memcpy((void*)x86_insn_sse_groups_operand_size, (void*)ret2, sizeof(ret2));
-	memcpy((void*)x86_insn_sse_groups_repnz, (void*)ret3, sizeof(ret3));
-
-}
diff --git a/loader/dobby/source/InstructionRelocation/x86/x86_insn_decode/x86_opcode_two_byte.c b/loader/dobby/source/InstructionRelocation/x86/x86_insn_decode/x86_opcode_two_byte.c
deleted file mode 100644
index 6a687708..00000000
--- a/loader/dobby/source/InstructionRelocation/x86/x86_insn_decode/x86_opcode_two_byte.c
+++ /dev/null
@@ -1,253 +0,0 @@
-
-// clang-format off
-static x86_insn_spec_t x86_opcode_map_two_byte[256];
-void set_x86_opcode_map_two_byte() {
-	x86_insn_spec_t ret[256] = {
-    /* 0x00 */
-    op0f(modrm_group_6, X86_INSN_FLAG_MODRM_REG_GROUP_6),
-    op0f(modrm_group_7, X86_INSN_FLAG_MODRM_REG_GROUP_7),
-    op2(lar, Gv, Ew),
-    op2(lsl, Gv, Ew),
-    op0(bad),
-    op0(syscall),
-    op0(clts),
-    op0(sysret),
-    op0(invd),
-    op0(wbinvd),
-    op0(bad),
-    op0(ud2),
-    op0(bad),
-    op0f(modrm_group_p, X86_INSN_FLAG_MODRM_REG_GROUP_p),
-    op0(femms),
-    op0(escape_3dnow),
-
-    /* 0x10 */
-    op2f(movups, X86_INSN_FLAG_SSE_GROUP_10, Gx, Ex),
-    op2f(movups, X86_INSN_FLAG_SSE_GROUP_10, Ex, Gx),
-    op2f(movlps, X86_INSN_FLAG_SSE_GROUP_10, Ex, Gx),
-    op2f(movlps, X86_INSN_FLAG_SSE_GROUP_10, Gx, Ex),
-    op2f(unpcklps, X86_INSN_FLAG_SSE_GROUP_10, Gx, Ex),
-    op2f(unpckhps, X86_INSN_FLAG_SSE_GROUP_10, Gx, Ex),
-    op2f(movhps, X86_INSN_FLAG_SSE_GROUP_10, Ex, Gx),
-    op2f(movhps, X86_INSN_FLAG_SSE_GROUP_10, Gx, Ex),
-    op0f(modrm_group_16, X86_INSN_FLAG_MODRM_REG_GROUP_16),
-    op0(nop),
-    op0(nop),
-    op0(nop),
-    op0(nop),
-    op0(nop),
-    op0(nop),
-    op0(nop),
-
-    /* 0x20 */
-    op2(mov, Rv, Cv),
-    op2(mov, Rv, Dv),
-    op2(mov, Cv, Rv),
-    op2(mov, Dv, Rv),
-    op0(bad),
-    op0(bad),
-    op0(bad),
-    op0(bad),
-    op2f(movaps, X86_INSN_FLAG_SSE_GROUP_28, Gx, Ex),
-    op2f(movaps, X86_INSN_FLAG_SSE_GROUP_28, Ex, Gx),
-    op2f(cvtpi2ps, X86_INSN_FLAG_SSE_GROUP_28, Gx, Ex),
-    op2f(movntps, X86_INSN_FLAG_SSE_GROUP_28, Mx, Gx),
-    op2f(cvttps2pi, X86_INSN_FLAG_SSE_GROUP_28, Gx, Ex),
-    op2f(cvtps2pi, X86_INSN_FLAG_SSE_GROUP_28, Gx, Ex),
-    op2f(ucomiss, X86_INSN_FLAG_SSE_GROUP_28, Gx, Ex),
-    op2f(comiss, X86_INSN_FLAG_SSE_GROUP_28, Gx, Ex),
-
-    /* 0x30 */
-    op0(wrmsr),
-    op0(rdtsc),
-    op0(rdmsr),
-    op0(rdpmc),
-    op0(sysenter),
-    op0(sysexit),
-    op0(bad),
-    op0(bad),
-    op0(bad),
-    op0(bad),
-    op0(bad),
-    op0(bad),
-    op0(bad),
-    op0(bad),
-    op0(bad),
-    op0(bad),
-
-/* 0x40 */
-#define _(x) op2(cmov##x, Gv, Ev),
-    foreach_x86_condition
-#undef _
-
-    /* 0x50 */
-    op2f(movmskps, X86_INSN_FLAG_SSE_GROUP_50, Gd, Rx),
-    op2f(sqrtps, X86_INSN_FLAG_SSE_GROUP_50, Gx, Ex),
-    op2f(rsqrtps, X86_INSN_FLAG_SSE_GROUP_50, Gx, Ex),
-    op2f(rcpps, X86_INSN_FLAG_SSE_GROUP_50, Gx, Ex),
-    op2f(andps, X86_INSN_FLAG_SSE_GROUP_50, Gx, Ex),
-    op2f(andnps, X86_INSN_FLAG_SSE_GROUP_50, Gx, Ex),
-    op2f(orps, X86_INSN_FLAG_SSE_GROUP_50, Gx, Ex),
-    op2f(xorps, X86_INSN_FLAG_SSE_GROUP_50, Gx, Ex),
-    op2f(addps, X86_INSN_FLAG_SSE_GROUP_58, Gx, Ex),
-    op2f(mulps, X86_INSN_FLAG_SSE_GROUP_58, Gx, Ex),
-    op2f(cvtps2pd, X86_INSN_FLAG_SSE_GROUP_58, Gx, Ex),
-    op2f(cvtdq2ps, X86_INSN_FLAG_SSE_GROUP_58, Gx, Ex),
-    op2f(subps, X86_INSN_FLAG_SSE_GROUP_58, Gx, Ex),
-    op2f(minps, X86_INSN_FLAG_SSE_GROUP_58, Gx, Ex),
-    op2f(divps, X86_INSN_FLAG_SSE_GROUP_58, Gx, Ex),
-    op2f(maxps, X86_INSN_FLAG_SSE_GROUP_58, Gx, Ex),
-
-    /* 0x60 */
-    op2f(punpcklbw, X86_INSN_FLAG_SSE_GROUP_60, Gm, Em),
-    op2f(punpcklwd, X86_INSN_FLAG_SSE_GROUP_60, Gm, Em),
-    op2f(punpckldq, X86_INSN_FLAG_SSE_GROUP_60, Gm, Em),
-    op2f(packsswb, X86_INSN_FLAG_SSE_GROUP_60, Gm, Em),
-    op2f(pcmpgtb, X86_INSN_FLAG_SSE_GROUP_60, Gm, Em),
-    op2f(pcmpgtw, X86_INSN_FLAG_SSE_GROUP_60, Gm, Em),
-    op2f(pcmpgtd, X86_INSN_FLAG_SSE_GROUP_60, Gm, Em),
-    op2f(packuswb, X86_INSN_FLAG_SSE_GROUP_60, Gm, Em),
-    op2f(punpckhbw, X86_INSN_FLAG_SSE_GROUP_68, Gm, Em),
-    op2f(punpckhwd, X86_INSN_FLAG_SSE_GROUP_68, Gm, Em),
-    op2f(punpckhdq, X86_INSN_FLAG_SSE_GROUP_68, Gm, Em),
-    op2f(packssdw, X86_INSN_FLAG_SSE_GROUP_68, Gm, Em),
-    op0f(bad, X86_INSN_FLAG_SSE_GROUP_68),
-    op0f(bad, X86_INSN_FLAG_SSE_GROUP_68),
-    op2f(movd, X86_INSN_FLAG_SSE_GROUP_68, Gm, Em),
-    op2f(movq, X86_INSN_FLAG_SSE_GROUP_68, Gm, Em),
-
-    /* 0x70 */
-    op3f(pshufw, X86_INSN_FLAG_SSE_GROUP_70, Gm, Em, Ib),
-    op0f(modrm_group_12, X86_INSN_FLAG_MODRM_REG_GROUP_12),
-    op0f(modrm_group_13, X86_INSN_FLAG_MODRM_REG_GROUP_13),
-    op0f(modrm_group_14, X86_INSN_FLAG_MODRM_REG_GROUP_14),
-    op2f(pcmpeqb, X86_INSN_FLAG_SSE_GROUP_70, Gm, Em),
-    op2f(pcmpeqw, X86_INSN_FLAG_SSE_GROUP_70, Gm, Em),
-    op2f(pcmpeqd, X86_INSN_FLAG_SSE_GROUP_70, Gm, Em),
-    op0f(emms, X86_INSN_FLAG_SSE_GROUP_70),
-    op0f(bad, X86_INSN_FLAG_SSE_GROUP_78),
-    op0f(bad, X86_INSN_FLAG_SSE_GROUP_78),
-    op0f(bad, X86_INSN_FLAG_SSE_GROUP_78),
-    op0f(bad, X86_INSN_FLAG_SSE_GROUP_78),
-    op0f(bad, X86_INSN_FLAG_SSE_GROUP_78),
-    op0f(bad, X86_INSN_FLAG_SSE_GROUP_78),
-    op2f(movd, X86_INSN_FLAG_SSE_GROUP_78, Em, Gm),
-    op2f(movq, X86_INSN_FLAG_SSE_GROUP_78, Em, Gm),
-
-/* 0x80 */
-#define _(x) op1(jmp##x, Jz),
-    foreach_x86_condition
-#undef _
-
-/* 0x90 */
-#define _(x) op1(set##x, Eb),
-    foreach_x86_condition
-#undef _
-
-    /* 0xa0 */
-    op0(push_fs),
-    op0(pop_fs),
-    op0(cpuid),
-    op2(bt, Ev, Gv),
-    op3(shld, Ev, Gv, Ib),
-    op3(shld, Ev, Gv, CL),
-    op0(bad),
-    op0(bad),
-    op0(push_gs),
-    op0(pop_gs),
-    op0(rsm),
-    op2(bts, Ev, Gv),
-    op3(shrd, Ev, Gv, Ib),
-    op3(shrd, Ev, Gv, CL),
-    op0f(modrm_group_15, X86_INSN_FLAG_MODRM_REG_GROUP_15),
-    op2(imul, Gv, Ev),
-
-    /* 0xb0 */
-    op2(cmpxchg, Eb, Gb),
-    op2(cmpxchg, Ev, Gv),
-    op2(lss, Gz, Mp),
-    op2(btr, Ev, Gv),
-    op2(lfs, Gz, Mp),
-    op2(lgs, Gz, Mp),
-    op2(movzbl, Gv, Eb),
-    op2(movzwl, Gv, Ew),
-    op0(bad),
-    op0f(modrm_group_10, X86_INSN_FLAG_MODRM_REG_GROUP_10),
-    op2f(modrm_group_8, X86_INSN_FLAG_MODRM_REG_GROUP_8, Ev, Ib),
-    op2(btc, Ev, Gv),
-    op2(bsf, Gv, Ev),
-    op2(bsr, Gv, Ev),
-    op2(movsx, Gv, Eb),
-    op2(movsx, Gv, Ew),
-
-    /* 0xc0 */
-    op2(xadd, Eb, Gb),
-    op2(xadd, Ev, Gv),
-    op3f(cmpps, X86_INSN_FLAG_SSE_GROUP_c0, Gx, Ex, Ib),
-    op2(movnti, Mv, Gv),
-    op3f(pinsrw, X86_INSN_FLAG_SSE_GROUP_c0, Gm, Ew, Ib),
-    op3f(pextrw, X86_INSN_FLAG_SSE_GROUP_c0, Gd, Rm, Ib),
-    op3f(shufps, X86_INSN_FLAG_SSE_GROUP_c0, Gx, Ex, Ib),
-    op1f(modrm_group_9, X86_INSN_FLAG_MODRM_REG_GROUP_9, Mx),
-#define _(r) op1(bswap, r),
-    foreach_x86_gp_reg
-#undef _
-
-    /* 0xd0 */
-    op0f(bad, X86_INSN_FLAG_SSE_GROUP_d0),
-    op2f(psrlw, X86_INSN_FLAG_SSE_GROUP_d0, Gm, Em),
-    op2f(psrld, X86_INSN_FLAG_SSE_GROUP_d0, Gm, Em),
-    op2f(psrlq, X86_INSN_FLAG_SSE_GROUP_d0, Gm, Em),
-    op2f(paddq, X86_INSN_FLAG_SSE_GROUP_d0, Gm, Em),
-    op2f(pmullw, X86_INSN_FLAG_SSE_GROUP_d0, Gm, Em),
-    op0f(bad, X86_INSN_FLAG_SSE_GROUP_d0),
-    op2f(pmovmskb, X86_INSN_FLAG_SSE_GROUP_d0, Gd, Rm),
-    op2f(psubusb, X86_INSN_FLAG_SSE_GROUP_d8, Gm, Em),
-    op2f(psubusw, X86_INSN_FLAG_SSE_GROUP_d8, Gm, Em),
-    op2f(pminub, X86_INSN_FLAG_SSE_GROUP_d8, Gm, Em),
-    op2f(pand, X86_INSN_FLAG_SSE_GROUP_d8, Gm, Em),
-    op2f(paddusb, X86_INSN_FLAG_SSE_GROUP_d8, Gm, Em),
-    op2f(paddusw, X86_INSN_FLAG_SSE_GROUP_d8, Gm, Em),
-    op2f(pmaxub, X86_INSN_FLAG_SSE_GROUP_d8, Gm, Em),
-    op2f(pandn, X86_INSN_FLAG_SSE_GROUP_d8, Gm, Em),
-
-    /* 0xe0 */
-    op2f(pavgb, X86_INSN_FLAG_SSE_GROUP_e0, Gm, Em),
-    op2f(psraw, X86_INSN_FLAG_SSE_GROUP_e0, Gm, Em),
-    op2f(psrad, X86_INSN_FLAG_SSE_GROUP_e0, Gm, Em),
-    op2f(pavgw, X86_INSN_FLAG_SSE_GROUP_e0, Gm, Em),
-    op2f(pmulhuw, X86_INSN_FLAG_SSE_GROUP_e0, Gm, Em),
-    op2f(pmulhw, X86_INSN_FLAG_SSE_GROUP_e0, Gm, Em),
-    op2f(bad, X86_INSN_FLAG_SSE_GROUP_e0, Gm, Em),
-    op2f(movntq, X86_INSN_FLAG_SSE_GROUP_e0, Mm, Gm),
-    op2f(psubsb, X86_INSN_FLAG_SSE_GROUP_e8, Gm, Em),
-    op2f(psubsw, X86_INSN_FLAG_SSE_GROUP_e8, Gm, Em),
-    op2f(pminsw, X86_INSN_FLAG_SSE_GROUP_e8, Gm, Em),
-    op2f(por, X86_INSN_FLAG_SSE_GROUP_e8, Gm, Em),
-    op2f(paddsb, X86_INSN_FLAG_SSE_GROUP_e8, Gm, Em),
-    op2f(paddsw, X86_INSN_FLAG_SSE_GROUP_e8, Gm, Em),
-    op2f(pmaxsw, X86_INSN_FLAG_SSE_GROUP_e8, Gm, Em),
-    op2f(pxor, X86_INSN_FLAG_SSE_GROUP_e8, Gm, Em),
-
-    /* 0xf0 */
-    op0f(bad, X86_INSN_FLAG_SSE_GROUP_f0),
-    op2f(psllw, X86_INSN_FLAG_SSE_GROUP_f0, Gm, Em),
-    op2f(pslld, X86_INSN_FLAG_SSE_GROUP_f0, Gm, Em),
-    op2f(psllq, X86_INSN_FLAG_SSE_GROUP_f0, Gm, Em),
-    op2f(pmuludq, X86_INSN_FLAG_SSE_GROUP_f0, Gm, Em),
-    op2f(pmaddwd, X86_INSN_FLAG_SSE_GROUP_f0, Gm, Em),
-    op2f(psadbw, X86_INSN_FLAG_SSE_GROUP_f0, Gm, Em),
-    op2f(maskmovq, X86_INSN_FLAG_SSE_GROUP_f0, Gm, Em),
-    op2f(psubb, X86_INSN_FLAG_SSE_GROUP_f8, Gm, Em),
-    op2f(psubw, X86_INSN_FLAG_SSE_GROUP_f8, Gm, Em),
-    op2f(psubd, X86_INSN_FLAG_SSE_GROUP_f8, Gm, Em),
-    op2f(psubq, X86_INSN_FLAG_SSE_GROUP_f8, Gm, Em),
-    op2f(paddb, X86_INSN_FLAG_SSE_GROUP_f8, Gm, Em),
-    op2f(paddw, X86_INSN_FLAG_SSE_GROUP_f8, Gm, Em),
-    op2f(paddd, X86_INSN_FLAG_SSE_GROUP_f8, Gm, Em),
-    op0f(bad, X86_INSN_FLAG_SSE_GROUP_f8),
-};
-
-	memcpy((void*)x86_opcode_map_two_byte, (void*)ret, sizeof(ret));
-}
-// clang-format on
diff --git a/loader/dobby/source/InterceptRouting/InterceptRouting.cpp b/loader/dobby/source/InterceptRouting/InterceptRouting.cpp
deleted file mode 100644
index a78079f8..00000000
--- a/loader/dobby/source/InterceptRouting/InterceptRouting.cpp
+++ /dev/null
@@ -1,88 +0,0 @@
-#include "dobby_internal.h"
-
-#include "InterceptRouting/InterceptRouting.h"
-#include "InterceptRouting/RoutingPlugin/RoutingPlugin.h"
-
-using namespace zz;
-
-void InterceptRouting::Prepare() {
-}
-
-// Generate relocated code
-bool InterceptRouting::GenerateRelocatedCode(int tramp_size) {
-  // generate original code
-  AssemblyCodeChunk *origin = NULL;
-  origin = AssemblyCodeBuilder::FinalizeFromAddress((addr_t)entry_->target_address, tramp_size);
-  origin_ = origin;
-
-  // generate the relocated code
-  AssemblyCodeChunk *relocated = NULL;
-  relocated = AssemblyCodeBuilder::FinalizeFromAddress(0, 0);
-  relocated_ = relocated;
-
-  void *relocate_buffer = NULL;
-  relocate_buffer = entry_->target_address;
-
-  GenRelocateCodeAndBranch(relocate_buffer, origin, relocated);
-  if (relocated->raw_instruction_start() == 0)
-    return false;
-
-  // set the relocated instruction address
-  entry_->relocated_origin_instructions = (void *)relocated->raw_instruction_start();
-  DLOG(0, "[insn relocate] origin %p - %d", origin->raw_instruction_start(), origin->raw_instruction_size());
-  DLOG(0, "[insn relocate] relocated %p - %d", relocated->raw_instruction_start(), relocated->raw_instruction_size());
-
-  // save original prologue
-  memcpy((void *)entry_->origin_chunk_.chunk_buffer, (void *)origin_->raw_instruction_start(),
-         origin_->raw_instruction_size());
-  entry_->origin_chunk_.chunk.re_init_region_range(origin_);
-  return true;
-}
-
-bool InterceptRouting::GenerateTrampolineBuffer(void *src, void *dst) {
-  CodeBufferBase *trampoline_buffer = NULL;
-  // if near branch trampoline plugin enabled
-  if (RoutingPluginManager::near_branch_trampoline) {
-    RoutingPluginInterface *plugin = NULL;
-    plugin = reinterpret_cast<RoutingPluginInterface *>(RoutingPluginManager::near_branch_trampoline);
-    if (plugin->GenerateTrampolineBuffer(this, src, dst) == false) {
-      DLOG(0, "Failed enable near branch trampoline plugin");
-    }
-  }
-
-  if (this->GetTrampolineBuffer() == NULL) {
-    trampoline_buffer = GenerateNormalTrampolineBuffer((addr_t)src, (addr_t)dst);
-    this->SetTrampolineBuffer(trampoline_buffer);
-
-    DLOG(0, "[trampoline] Generate trampoline buffer %p -> %p", src, dst);
-  }
-  return true;
-}
-
-// Active routing, will patch the origin insturctions, and forward to our custom routing.
-// Patch the address with branch instr
-void InterceptRouting::Active() {
-  void *patch_address = NULL;
-  patch_address = (void *)origin_->raw_instruction_start();
-
-  CodePatch(patch_address, (uint8_t *)trampoline_buffer_->getRawBuffer(), trampoline_buffer_->getSize());
-  DLOG(0, "[intercept routing] Active patch %p", patch_address);
-}
-
-void InterceptRouting::Commit() {
-  this->Active();
-}
-
-#if 0
-int InterceptRouting::PredefinedTrampolineSize() {
-#if __arm64__
-  return 12;
-#elif __arm__
-  return 8;
-#endif
-}
-#endif
-
-HookEntry *InterceptRouting::GetHookEntry() {
-  return entry_;
-};
diff --git a/loader/dobby/source/InterceptRouting/InterceptRouting.h b/loader/dobby/source/InterceptRouting/InterceptRouting.h
deleted file mode 100644
index 5917cd49..00000000
--- a/loader/dobby/source/InterceptRouting/InterceptRouting.h
+++ /dev/null
@@ -1,64 +0,0 @@
-#ifndef INTERCEPT_ROUTING_H
-#define INTERCEPT_ROUTING_H
-
-#include "Interceptor.h"
-#include "MemoryAllocator/AssemblyCodeBuilder.h"
-#include "InstructionRelocation/InstructionRelocation.h"
-#include "TrampolineBridge/Trampoline/Trampoline.h"
-
-class InterceptRouting {
-public:
-  InterceptRouting(HookEntry *entry) : entry_(entry) {
-    entry->route = this;
-
-    trampoline_ = NULL;
-    trampoline_buffer_ = NULL;
-    trampoline_target_ = NULL;
-  }
-
-  virtual void DispatchRouting() = 0;
-
-  virtual void Prepare();
-
-  virtual void Active();
-
-  void Commit();
-
-  HookEntry *GetHookEntry();
-
-  void SetTrampolineBuffer(CodeBufferBase *buffer) {
-    trampoline_buffer_ = buffer;
-  }
-
-  CodeBufferBase *GetTrampolineBuffer() {
-    return trampoline_buffer_;
-  }
-
-  void SetTrampolineTarget(void *address) {
-    trampoline_target_ = address;
-  }
-
-  void *GetTrampolineTarget() {
-    return trampoline_target_;
-  }
-
-protected:
-  bool GenerateRelocatedCode(int tramp_size);
-
-  bool GenerateTrampolineBuffer(void *src, void *dst);
-
-protected:
-  HookEntry *entry_;
-
-  AssemblyCodeChunk *origin_;
-
-  AssemblyCodeChunk *relocated_;
-
-  AssemblyCodeChunk *trampoline_;
-
-  // trampoline buffer before active
-  CodeBufferBase *trampoline_buffer_;
-
-  void *trampoline_target_;
-};
-#endif
diff --git a/loader/dobby/source/InterceptRouting/Routing/DynamicBinaryInstrument/DynamicBinaryInstrumentExport.cc b/loader/dobby/source/InterceptRouting/Routing/DynamicBinaryInstrument/DynamicBinaryInstrumentExport.cc
deleted file mode 100644
index ff573151..00000000
--- a/loader/dobby/source/InterceptRouting/Routing/DynamicBinaryInstrument/DynamicBinaryInstrumentExport.cc
+++ /dev/null
@@ -1,37 +0,0 @@
-#include "dobby_internal.h"
-
-#include "InterceptRouting/InterceptRouting.h"
-#include "InterceptRouting/Routing/DynamicBinaryInstrument/dynamic-binary-instrument.h"
-
-PUBLIC int DobbyInstrument(void *address, DBICallTy handler) {
-  if (!address) {
-    ERROR_LOG("the function address is 0x0.\n");
-    return RS_FAILED;
-  }
-
-  RAW_LOG(1, "\n\n");
-  DLOG(0, "[DobbyInstrument] Initialize at %p", address);
-
-  // check if we already instruemnt
-  HookEntry *entry = Interceptor::SharedInstance()->FindHookEntry(address);
-  if (entry) {
-    DynamicBinaryInstrumentRouting *route = (DynamicBinaryInstrumentRouting *)entry->route;
-    if (route->handler == handler) {
-      ERROR_LOG("instruction %s already been instrumented.", address);
-      return RS_FAILED;
-    }
-  }
-
-  entry = new HookEntry();
-  entry->id = Interceptor::SharedInstance()->GetHookEntryCount();
-  entry->type = kDynamicBinaryInstrument;
-  entry->instruction_address = address;
-
-  DynamicBinaryInstrumentRouting *route = new DynamicBinaryInstrumentRouting(entry, (void *)handler);
-  route->Prepare();
-  route->DispatchRouting();
-  Interceptor::SharedInstance()->AddHookEntry(entry);
-  route->Commit();
-
-  return RS_SUCCESS;
-}
diff --git a/loader/dobby/source/InterceptRouting/Routing/DynamicBinaryInstrument/dynamic-binary-instrument.cc b/loader/dobby/source/InterceptRouting/Routing/DynamicBinaryInstrument/dynamic-binary-instrument.cc
deleted file mode 100644
index 54335f0c..00000000
--- a/loader/dobby/source/InterceptRouting/Routing/DynamicBinaryInstrument/dynamic-binary-instrument.cc
+++ /dev/null
@@ -1,41 +0,0 @@
-#include "InterceptRouting/Routing/DynamicBinaryInstrument/dynamic-binary-instrument.h"
-
-#include "dobby_internal.h"
-
-#include "TrampolineBridge/ClosureTrampolineBridge/AssemblyClosureTrampoline.h"
-
-#include "InterceptRouting/Routing/DynamicBinaryInstrument/intercept_routing_handler.h"
-
-void DynamicBinaryInstrumentRouting::DispatchRouting() {
-  BuildDynamicBinaryInstrumentRouting();
-
-  // generate relocated code which size == trampoline size
-  GenerateRelocatedCode(trampoline_buffer_->getSize());
-}
-
-// Add dbi_call handler before running the origin instructions
-void DynamicBinaryInstrumentRouting::BuildDynamicBinaryInstrumentRouting() {
-  // create closure trampoline jump to prologue_routing_dispath with the `entry_` data
-  ClosureTrampolineEntry *closure_trampoline;
-
-  void *handler = (void *)instrument_routing_dispatch;
-#if __APPLE__
-#if __has_feature(ptrauth_calls)
-  handler = __builtin_ptrauth_strip(handler, ptrauth_key_asia);
-#endif
-#endif
-
-  closure_trampoline = ClosureTrampoline::CreateClosureTrampoline(entry_, handler);
-  this->SetTrampolineTarget(closure_trampoline->address);
-  DLOG(0, "[closure bridge] Carry data %p ", entry_);
-  DLOG(0, "[closure bridge] Create prologue_dispatch_bridge %p", closure_trampoline->address);
-
-  // generate trampoline buffer, run before `GenerateRelocatedCode`
-  GenerateTrampolineBuffer(entry_->target_address, GetTrampolineTarget());
-}
-
-#if 0
-void *DynamicBinaryInstrumentRouting::GetTrampolineTarget() {
-  return this->prologue_dispatch_bridge;
-}
-#endif
\ No newline at end of file
diff --git a/loader/dobby/source/InterceptRouting/Routing/DynamicBinaryInstrument/dynamic-binary-instrument.h b/loader/dobby/source/InterceptRouting/Routing/DynamicBinaryInstrument/dynamic-binary-instrument.h
deleted file mode 100644
index b098233d..00000000
--- a/loader/dobby/source/InterceptRouting/Routing/DynamicBinaryInstrument/dynamic-binary-instrument.h
+++ /dev/null
@@ -1,35 +0,0 @@
-#ifndef DYNAMIC_BINARY_INSTRUMENT_H
-#define DYNAMIC_BINARY_INSTRUMENT_H
-
-#include "dobby_internal.h"
-
-#include "Interceptor.h"
-
-#include "InterceptRouting/InterceptRouting.h"
-
-#include "TrampolineBridge/ClosureTrampolineBridge/AssemblyClosureTrampoline.h"
-
-#define X64InterceptRouting InterceptRouting
-#define ARM64InterceptRouting InterceptRouting
-
-class DynamicBinaryInstrumentRouting : public X64InterceptRouting {
-public:
-  DynamicBinaryInstrumentRouting(HookEntry *entry, void *handler) : X64InterceptRouting(entry) {
-    this->handler = handler;
-  }
-
-  void DispatchRouting();
-
-public:
-  void *handler;
-
-private:
-  virtual void BuildDynamicBinaryInstrumentRouting();
-
-private:
-  void *prologue_dispatch_bridge;
-
-  ;
-};
-
-#endif
diff --git a/loader/dobby/source/InterceptRouting/Routing/DynamicBinaryInstrument/intercept_routing_handler.cc b/loader/dobby/source/InterceptRouting/Routing/DynamicBinaryInstrument/intercept_routing_handler.cc
deleted file mode 100644
index bd43afd2..00000000
--- a/loader/dobby/source/InterceptRouting/Routing/DynamicBinaryInstrument/intercept_routing_handler.cc
+++ /dev/null
@@ -1,27 +0,0 @@
-#include "InterceptRouting/Routing/DynamicBinaryInstrument/intercept_routing_handler.h"
-
-#include "dobby_internal.h"
-
-#include "InterceptRouting/Routing/DynamicBinaryInstrument/dynamic-binary-instrument.h"
-
-#include "TrampolineBridge/ClosureTrampolineBridge/common-bridge-handler.h"
-
-void instrument_call_forward_handler(RegisterContext *ctx, HookEntry *entry) {
-  DynamicBinaryInstrumentRouting *route = (DynamicBinaryInstrumentRouting *)entry->route;
-  if (route->handler) {
-    DBICallTy handler;
-    HookEntryInfo entry_info;
-    entry_info.hook_id = entry->id;
-    entry_info.instruction_address = entry->instruction_address;
-    handler = (DBICallTy)route->handler;
-    (*handler)(ctx, (const HookEntryInfo *)&entry_info);
-  }
-
-  // set prologue bridge next hop address with origin instructions that have been relocated(patched)
-  set_routing_bridge_next_hop(ctx, entry->relocated_origin_instructions);
-}
-
-void instrument_routing_dispatch(RegisterContext *ctx, ClosureTrampolineEntry *closure_trampoline_entry) {
-  HookEntry *entry = (HookEntry *)closure_trampoline_entry->carry_data;
-  instrument_call_forward_handler(ctx, entry);
-}
diff --git a/loader/dobby/source/InterceptRouting/Routing/DynamicBinaryInstrument/intercept_routing_handler.h b/loader/dobby/source/InterceptRouting/Routing/DynamicBinaryInstrument/intercept_routing_handler.h
deleted file mode 100644
index 75a24ebe..00000000
--- a/loader/dobby/source/InterceptRouting/Routing/DynamicBinaryInstrument/intercept_routing_handler.h
+++ /dev/null
@@ -1,12 +0,0 @@
-#ifndef INTERCEPT_ROUTING_HANDLER_H
-#define INTERCEPT_ROUTING_HANDLER_H
-
-#include "dobby_internal.h"
-
-#include "TrampolineBridge/ClosureTrampolineBridge/AssemblyClosureTrampoline.h"
-
-extern "C" {
-void instrument_routing_dispatch(RegisterContext *ctx, ClosureTrampolineEntry *entry);
-}
-
-#endif
\ No newline at end of file
diff --git a/loader/dobby/source/InterceptRouting/Routing/FunctionInlineReplace/FunctionInlineReplaceExport.cc b/loader/dobby/source/InterceptRouting/Routing/FunctionInlineReplace/FunctionInlineReplaceExport.cc
deleted file mode 100644
index 0252e196..00000000
--- a/loader/dobby/source/InterceptRouting/Routing/FunctionInlineReplace/FunctionInlineReplaceExport.cc
+++ /dev/null
@@ -1,42 +0,0 @@
-#include "dobby_internal.h"
-
-#include "Interceptor.h"
-#include "InterceptRouting/InterceptRouting.h"
-#include "InterceptRouting/Routing/FunctionInlineReplace/function-inline-replace.h"
-
-PUBLIC int DobbyHook(void *address, void *replace_call, void **origin_call) {
-  if (!address) {
-    ERROR_LOG("function address is 0x0");
-    return RS_FAILED;
-  }
-
-  DLOG(0, "[DobbyHook] Initialize at %p", address);
-
-  // check if already hooked
-  HookEntry *entry = Interceptor::SharedInstance()->FindHookEntry(address);
-  if (entry) {
-    FunctionInlineReplaceRouting *route = (FunctionInlineReplaceRouting *)entry->route;
-    if (route->GetTrampolineTarget() == replace_call) {
-      ERROR_LOG("function %p already been hooked.", address);
-      return RS_FAILED;
-    }
-  }
-
-  entry = new HookEntry();
-  entry->id = Interceptor::SharedInstance()->GetHookEntryCount();
-  entry->type = kFunctionInlineHook;
-  entry->function_address = address;
-
-  FunctionInlineReplaceRouting *route = new FunctionInlineReplaceRouting(entry, replace_call);
-  route->Prepare();
-  route->DispatchRouting();
-  Interceptor::SharedInstance()->AddHookEntry(entry);
-
-  // set origin call with relocated function
-  *origin_call = entry->relocated_origin_function;
-
-  // code patch & hijack original control flow entry
-  route->Commit();
-
-  return RS_SUCCESS;
-}
diff --git a/loader/dobby/source/InterceptRouting/Routing/FunctionInlineReplace/function-inline-replace.cc b/loader/dobby/source/InterceptRouting/Routing/FunctionInlineReplace/function-inline-replace.cc
deleted file mode 100644
index 4e17d6d9..00000000
--- a/loader/dobby/source/InterceptRouting/Routing/FunctionInlineReplace/function-inline-replace.cc
+++ /dev/null
@@ -1,24 +0,0 @@
-#include "InterceptRouting/Routing/FunctionInlineReplace/function-inline-replace.h"
-
-#include "dobby_internal.h"
-
-void FunctionInlineReplaceRouting::DispatchRouting() {
-  BuildReplaceRouting();
-
-  // generate relocated code which size == trampoline size
-  GenerateRelocatedCode(trampoline_buffer_->getSize());
-}
-
-void FunctionInlineReplaceRouting::BuildReplaceRouting() {
-  this->SetTrampolineTarget(this->replace_call);
-  DLOG(0, "[inline] Set trampoline target => %p", GetTrampolineTarget());
-
-  // generate trampoline buffer, run before `GenerateRelocatedCode`
-  GenerateTrampolineBuffer(entry_->target_address, GetTrampolineTarget());
-}
-
-#if 0
-void *FunctionInlineReplaceRouting::GetTrampolineTarget() {
-  return this->replace_call;
-}
-#endif
diff --git a/loader/dobby/source/InterceptRouting/Routing/FunctionInlineReplace/function-inline-replace.h b/loader/dobby/source/InterceptRouting/Routing/FunctionInlineReplace/function-inline-replace.h
deleted file mode 100644
index ff7e1f38..00000000
--- a/loader/dobby/source/InterceptRouting/Routing/FunctionInlineReplace/function-inline-replace.h
+++ /dev/null
@@ -1,26 +0,0 @@
-#ifndef FUNCTION_INLINE_REPLACE_H
-#define FUNCTION_INLINE_REPLACE_H
-
-#include "dobby_internal.h"
-
-#include "InterceptRouting/InterceptRouting.h"
-#include "Interceptor.h"
-
-#include "TrampolineBridge/ClosureTrampolineBridge/AssemblyClosureTrampoline.h"
-
-class FunctionInlineReplaceRouting : public InterceptRouting {
-public:
-  FunctionInlineReplaceRouting(HookEntry *entry, void *replace_call) : InterceptRouting(entry) {
-    this->replace_call = replace_call;
-  }
-
-  void DispatchRouting() override;
-
-private:
-  virtual void BuildReplaceRouting();
-
-private:
-  void *replace_call;
-};
-
-#endif
diff --git a/loader/dobby/source/InterceptRouting/Routing/FunctionWrapper/FunctionWrapperExport.cc b/loader/dobby/source/InterceptRouting/Routing/FunctionWrapper/FunctionWrapperExport.cc
deleted file mode 100644
index cc8301d2..00000000
--- a/loader/dobby/source/InterceptRouting/Routing/FunctionWrapper/FunctionWrapperExport.cc
+++ /dev/null
@@ -1,27 +0,0 @@
-#include "dobby_internal.h"
-
-#include "logging/logging.h"
-
-#include "Interceptor.h"
-#include "InterceptRouting/InterceptRouting.h"
-
-#include "function-wrapper.h"
-
-PUBLIC int DobbyWrap(void *function_address, PreCallTy pre_call, PostCallTy post_call) {
-  DLOG(0, "Initialize 'DobbyWrap' hook at %p", function_address);
-
-  Interceptor *interceptor = Interceptor::SharedInstance();
-
-  HookEntry *entry = new HookEntry();
-  entry->id = interceptor->entries->getCount();
-  entry->type = kFunctionWrapper;
-  entry->function_address = function_address;
-
-  FunctionWrapperRouting *route = new FunctionWrapperRouting(entry);
-  route->DispatchRouting();
-  interceptor->AddHookEntry(entry);
-  route->Commit();
-
-  DLOG(0, "Finalize %p", function_address);
-  return RS_SUCCESS;
-}
diff --git a/loader/dobby/source/InterceptRouting/Routing/FunctionWrapper/function-wrapper.cc b/loader/dobby/source/InterceptRouting/Routing/FunctionWrapper/function-wrapper.cc
deleted file mode 100644
index 2f25dc9c..00000000
--- a/loader/dobby/source/InterceptRouting/Routing/FunctionWrapper/function-wrapper.cc
+++ /dev/null
@@ -1,38 +0,0 @@
-#include "dobby_internal.h"
-
-#include "TrampolineBridge/ClosureTrampolineBridge/AssemblyClosureTrampoline.h"
-
-#include "intercept_routing_handler.h"
-
-#include "function-wrapper.h"
-
-void FunctionWrapperRouting::DispatchRouting() {
-  Prepare();
-  BuildPreCallRouting();
-  BuildPostCallRouting();
-}
-
-// Add pre_call(prologue) handler before running the origin function,
-void FunctionWrapperRouting::BuildPreCallRouting() {
-  // create closure trampoline jump to prologue_routing_dispath with the `entry_` data
-  ClosureTrampolineEntry *cte = ClosureTrampoline::CreateClosureTrampoline(entry_, (void *)prologue_routing_dispatch);
-  this->prologue_dispatch_bridge = cte->address;
-
-  DLOG(0, "Create pre call closure trampoline to 'prologue_routing_dispatch' at %p", cte->address);
-}
-
-// Add post_call(epilogue) handler before `Return` of the origin function, as implementation is replace the origin
-// `Return Address` of the function.
-void FunctionWrapperRouting::BuildPostCallRouting() {
-  // create closure trampoline jump to prologue_routing_dispath with the `entry_` data
-  ClosureTrampolineEntry *closure_trampoline_entry;
-  // format trampoline
-  closure_trampoline_entry = ClosureTrampoline::CreateClosureTrampoline(entry_, (void *)epilogue_routing_dispatch);
-  DLOG(0, "Create post call closure trampoline to 'prologue_routing_dispatch' at %p",
-       closure_trampoline_entry->address);
-
-  this->SetTrampolineTarget(closure_trampoline_entry->address);
-  this->epilogue_dispatch_bridge = closure_trampoline_entry->address;
-
-  GenerateTrampolineBuffer(entry_->target_address, GetTrampolineTarget());
-}
\ No newline at end of file
diff --git a/loader/dobby/source/InterceptRouting/Routing/FunctionWrapper/function-wrapper.h b/loader/dobby/source/InterceptRouting/Routing/FunctionWrapper/function-wrapper.h
deleted file mode 100644
index 29bf5496..00000000
--- a/loader/dobby/source/InterceptRouting/Routing/FunctionWrapper/function-wrapper.h
+++ /dev/null
@@ -1,40 +0,0 @@
-#ifndef FUNCTION_WRAPPER_H
-#define FUNCTION_WRAPPER_H
-
-#include "dobby_internal.h"
-
-#include "TrampolineBridge/ClosureTrampolineBridge/AssemblyClosureTrampoline.h"
-#include "InterceptRouting/InterceptRouting.h"
-#include "Interceptor.h"
-
-#if TARGET_ARCH_IA32
-#elif TARGET_ARCH_X64
-#include "InterceptRouting/x64/X64InterceptRouting.h"
-#elif TARGET_ARCH_ARM64
-#include "InterceptRouting/arm64/ARM64InterceptRouting.h"
-#elif TARGET_ARCH_ARM
-#else
-#error "unsupported architecture"
-#endif
-
-class FunctionWrapperRouting : public InterceptRouting {
-public:
-  FunctionWrapperRouting(HookEntry *entry) : InterceptRouting(entry) {
-  }
-
-  void DispatchRouting();
-
-  void *GetTrampolineTarget();
-
-private:
-  void BuildPreCallRouting();
-
-  void BuildPostCallRouting();
-
-private:
-  void *prologue_dispatch_bridge;
-
-  void *epilogue_dispatch_bridge;
-};
-
-#endif
diff --git a/loader/dobby/source/InterceptRouting/Routing/FunctionWrapper/intercept_routing_handler.cc b/loader/dobby/source/InterceptRouting/Routing/FunctionWrapper/intercept_routing_handler.cc
deleted file mode 100644
index 189e2206..00000000
--- a/loader/dobby/source/InterceptRouting/Routing/FunctionWrapper/intercept_routing_handler.cc
+++ /dev/null
@@ -1,79 +0,0 @@
-
-#include "dobby_internal.h"
-
-#include "logging/logging.h"
-
-#include "intercept_routing_handler.h"
-
-#include "function-wrapper.h"
-#include "intercept_routing_handler.h"
-
-#include "MultiThreadSupport/ThreadSupport.h"
-
-#include "TrampolineBridge/ClosureTrampolineBridge/common-bridge-handler.h"
-
-void pre_call_forward_handler(RegisterContext *ctx, HookEntry *entry) {
-  FunctionWrapperRouting *route = (FunctionWrapperRouting *)entry->route;
-
-  StackFrame *stackframe = new StackFrame();
-  // create stack frame as common variable between pre_call and post_call
-  ThreadSupport::PushStackFrame(stackframe);
-
-  // run the `pre_call` before execute origin function which has been relocated(fixed)
-  if (route->pre_call) {
-    PreCallTy pre_call;
-    HookEntryInfo entry_info;
-    entry_info.hook_id = entry->id;
-    entry_info.target_address = entry->target_address;
-    pre_call = route->pre_call;
-    // run the pre_call with the power of accessing all registers
-    (*pre_call)(ctx, (const HookEntryInfo *)&entry_info);
-  }
-
-  // save the origin ret address, and use in `post_call_forword_handler`
-  stackframe->orig_ret = get_func_ret_address(ctx);
-
-  // set the prologue bridge next hop address with the patched instructions has been relocated
-  set_routing_bridge_next_hop(ctx, entry->relocated_origin_function);
-
-  // replace the function ret address with our epilogue_routing_dispatch
-  set_func_ret_address(ctx, entry->epilogue_dispatch_bridge);
-}
-
-void post_call_forward_handler(RegisterContext *ctx, HookEntry *entry) {
-  FunctionWrapperRouting *route = (FunctionWrapperRouting *)entry->route;
-
-  // pop stack frame as common variable between pre_call and post_call
-  StackFrame *stackframe = ThreadSupport::PopStackFrame();
-
-  // run the `post_call`, and access all the register value, as the origin function done,
-  if (route->post_call) {
-    PostCallTy post_call;
-    HookEntryInfo entry_info;
-    entry_info.hook_id = entry->id;
-    entry_info.target_address = entry->target_address;
-    post_call = route->post_call;
-
-    // run the post_call with the power of accessing all registers
-    (*post_call)(ctx, (const HookEntryInfo *)&entry_info);
-  }
-
-  // set epilogue bridge next hop address with origin ret address, restore the call.
-  set_routing_bridge_next_hop(ctx, stackframe->orig_ret);
-}
-
-// run the user handler **before run the origin-instructions(which have been relocated)**
-void prologue_routing_dispatch(RegisterContext *ctx, ClosureTrampolineEntry *closure_trampoline_entry) {
-  DLOG(0, "Catch prologue dispatch");
-  HookEntry *entry = static_cast<HookEntry *>(closure_trampoline_entry->carry_data);
-  pre_call_forward_handler(ctx, entry);
-  return;
-}
-
-// run the user handler **before the function return** by replace the lr register
-void epilogue_routing_dispatch(RegisterContext *ctx, ClosureTrampolineEntry *closure_trampoline_entry) {
-  DLOG(0, "Catch epilogue dispatch");
-  HookEntry *entry = static_cast<HookEntry *>(closure_trampoline_entry->carry_data);
-  post_call_forward_handler(ctx, entry);
-  return;
-}
\ No newline at end of file
diff --git a/loader/dobby/source/InterceptRouting/Routing/FunctionWrapper/intercept_routing_handler.h b/loader/dobby/source/InterceptRouting/Routing/FunctionWrapper/intercept_routing_handler.h
deleted file mode 100644
index 08e91e07..00000000
--- a/loader/dobby/source/InterceptRouting/Routing/FunctionWrapper/intercept_routing_handler.h
+++ /dev/null
@@ -1,27 +0,0 @@
-#ifndef FUNCTION_WRAPPER_INTERCEPT_ROUTING_HANDLER_H
-#define FUNCTION_WRAPPER_INTERCEPT_ROUTING_HANDLER_H
-
-#include "TrampolineBridge/ClosureTrampolineBridge/AssemblyClosureTrampoline.h"
-#include "Interceptor.h"
-#include "dobby_internal.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif //__cplusplus
-
-// Dispatch the routing befor running the origin function
-void prologue_routing_dispatch(RegisterContext *ctx, ClosureTrampolineEntry *entry);
-
-// Dispatch the routing before the function return . (as it's implementation by relpace `return address` in the stack
-// ,or LR register)
-void epilogue_routing_dispatch(RegisterContext *ctx, ClosureTrampolineEntry *entry);
-
-void pre_call_forward_handler(RegisterContext *ctx, HookEntry *entry);
-
-void post_call_forward_handler(RegisterContext *ctx, HookEntry *entry);
-
-#ifdef __cplusplus
-}
-#endif //__cplusplus
-
-#endif
\ No newline at end of file
diff --git a/loader/dobby/source/InterceptRouting/RoutingPlugin/NearBranchTrampoline/NeaBranchTrampoline.cc b/loader/dobby/source/InterceptRouting/RoutingPlugin/NearBranchTrampoline/NeaBranchTrampoline.cc
deleted file mode 100644
index 0b836de5..00000000
--- a/loader/dobby/source/InterceptRouting/RoutingPlugin/NearBranchTrampoline/NeaBranchTrampoline.cc
+++ /dev/null
@@ -1,50 +0,0 @@
-#include "InterceptRouting/RoutingPlugin/NearBranchTrampoline/NearBranchTrampoline.h"
-
-#include "dobby_internal.h"
-
-#include "MemoryAllocator/NearMemoryArena.h"
-
-#include "InterceptRouting/RoutingPlugin/RoutingPlugin.h"
-
-using namespace zz;
-
-PUBLIC void dobby_enable_near_branch_trampoline() {
-  RoutingPluginInterface *plugin = new NearBranchTrampolinePlugin;
-  RoutingPluginManager::registerPlugin("near_branch_trampoline", plugin);
-  RoutingPluginManager::near_branch_trampoline = plugin;
-}
-
-PUBLIC void dobby_disable_near_branch_trampoline() {
-  NearBranchTrampolinePlugin *plugin = (NearBranchTrampolinePlugin *)RoutingPluginManager::near_branch_trampoline;
-  delete plugin;
-  RoutingPluginManager::near_branch_trampoline = NULL;
-}
-
-#if 0
-int NearBranchTrampolinePlugin::PredefinedTrampolineSize() {
-#if __arm64__
-  return 4;
-#elif __arm__
-  return 4;
-#endif
-}
-#endif
-
-extern CodeBufferBase *GenerateNearTrampolineBuffer(InterceptRouting *routing, addr_t from, addr_t to);
-bool NearBranchTrampolinePlugin::GenerateTrampolineBuffer(InterceptRouting *routing, void *src, void *dst) {
-  CodeBufferBase *trampoline_buffer;
-  trampoline_buffer = GenerateNearTrampolineBuffer(routing, (addr_t)src, (addr_t)dst);
-  if (trampoline_buffer == NULL)
-    return false;
-  routing->SetTrampolineBuffer(trampoline_buffer);
-  return true;
-}
-
-// generate trampoline, patch the original entry
-bool NearBranchTrampolinePlugin::Active(InterceptRouting *routing) {
-  addr_t src, dst;
-  HookEntry *entry = routing->GetHookEntry();
-  src = (addr_t)entry->target_address;
-  dst = (addr_t)routing->GetTrampolineTarget();
-  return true;
-}
diff --git a/loader/dobby/source/InterceptRouting/RoutingPlugin/NearBranchTrampoline/NearBranchTrampoline.h b/loader/dobby/source/InterceptRouting/RoutingPlugin/NearBranchTrampoline/NearBranchTrampoline.h
deleted file mode 100644
index 6ac6b72e..00000000
--- a/loader/dobby/source/InterceptRouting/RoutingPlugin/NearBranchTrampoline/NearBranchTrampoline.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef PLUGIN_NEAR_BRANCH_TRAMPOLINE_H
-#define PLUGIN_NEAR_BRANCH_TRAMPOLINE_H
-
-#include "dobby_internal.h"
-
-#include "InterceptRouting/RoutingPlugin/RoutingPlugin.h"
-
-class NearBranchTrampolinePlugin : public RoutingPluginInterface {
-  // @Return: if false will continue to iter next plugin
-  bool Prepare(InterceptRouting *routing) {
-    return false;
-  };
-
-  bool Active(InterceptRouting *routing);
-
-  bool GenerateTrampolineBuffer(InterceptRouting *routing, void *src, void *dst);
-};
-
-#endif
diff --git a/loader/dobby/source/InterceptRouting/RoutingPlugin/RoutingPlugin.cc b/loader/dobby/source/InterceptRouting/RoutingPlugin/RoutingPlugin.cc
deleted file mode 100644
index 39842115..00000000
--- a/loader/dobby/source/InterceptRouting/RoutingPlugin/RoutingPlugin.cc
+++ /dev/null
@@ -1,15 +0,0 @@
-#include "InterceptRouting/RoutingPlugin/RoutingPlugin.h"
-
-LiteMutableArray *RoutingPluginManager::plugins;
-
-RoutingPluginInterface *RoutingPluginManager::near_branch_trampoline = NULL;
-
-void RoutingPluginManager::registerPlugin(const char *name, RoutingPluginInterface *plugin) {
-  DLOG(0, "register %s plugin", name);
-
-  if (RoutingPluginManager::plugins == NULL) {
-    RoutingPluginManager::plugins = new LiteMutableArray(8);
-  }
-
-  RoutingPluginManager::plugins->pushObject(reinterpret_cast<LiteObject *>(plugin));
-}
diff --git a/loader/dobby/source/InterceptRouting/RoutingPlugin/RoutingPlugin.h b/loader/dobby/source/InterceptRouting/RoutingPlugin/RoutingPlugin.h
deleted file mode 100644
index b653a16a..00000000
--- a/loader/dobby/source/InterceptRouting/RoutingPlugin/RoutingPlugin.h
+++ /dev/null
@@ -1,36 +0,0 @@
-#ifndef EXTRA_INTERNAL_PLUGIN_H
-#define EXTRA_INTERNAL_PLUGIN_H
-
-#include "dobby_internal.h"
-
-#include "InterceptRouting/InterceptRouting.h"
-
-class RoutingPluginInterface {
-public:
-  // @Return: if false will continue to iter next plugin
-  virtual bool Prepare(InterceptRouting *routing) = 0;
-
-  // @Return: if false will continue to iter next plugin
-  virtual bool Active(InterceptRouting *routing) = 0;
-
-  // @Return: if false will continue to iter next plugin
-  virtual bool GenerateTrampolineBuffer(InterceptRouting *routing, void *src, void *dst) = 0;
-
-private:
-  char name_[256];
-};
-
-class RoutingPluginManager {
-public:
-  static void registerPlugin(const char *name, RoutingPluginInterface *plugin);
-
-public:
-  // global plugin array
-  static LiteMutableArray *plugins;
-
-  static RoutingPluginInterface *near_branch_trampoline;
-};
-
-
-
-#endif
\ No newline at end of file
diff --git a/loader/dobby/source/Interceptor.cpp b/loader/dobby/source/Interceptor.cpp
deleted file mode 100644
index 7b5f4c8a..00000000
--- a/loader/dobby/source/Interceptor.cpp
+++ /dev/null
@@ -1,71 +0,0 @@
-#include "Interceptor.h"
-
-#include "dobby_internal.h"
-
-Interceptor *Interceptor::priv_interceptor_ = nullptr;
-
-Interceptor *Interceptor::SharedInstance() {
-  if (Interceptor::priv_interceptor_ == nullptr) {
-    Interceptor::priv_interceptor_ = new Interceptor();
-    INIT_LIST_HEAD(&Interceptor::priv_interceptor_->hook_entry_list_);
-  }
-  return Interceptor::priv_interceptor_;
-}
-
-HookEntryNode *Interceptor::find_hook_entry_node(void *address) {
-  HookEntryNode *entry_node = nullptr;
-#if defined(_MSC_VER)
-#if 0 // only valid if offsetof(HookEntryNode, list_node) == 0
-  for(entry_node = (HookEntryNode *)hook_entry_list_.next; &entry_node->list_node != &hook_entry_list_; entry_node = (HookEntryNode *)entry_node->list_node.next);
-#endif
-  struct list_head *list_node = nullptr;
-  for(list_node = hook_entry_list_.next; list_node != &hook_entry_list_; list_node = list_node->next) {
-    entry_node = (HookEntryNode *)((char *)list_node - offsetof(HookEntryNode, list_node));
-#else
-    list_for_each_entry(entry_node, &hook_entry_list_, list_node) {
-#endif
-    HookEntry *entry = entry_node->entry;
-    if (entry->instruction_address == address) {
-      return entry_node;
-    }
-  }
-  return nullptr;
-}
-
-HookEntry *Interceptor::FindHookEntry(void *address) {
-  HookEntryNode *entry_node = nullptr;
-  entry_node = find_hook_entry_node(address);
-  if (entry_node) {
-    return entry_node->entry;
-  }
-
-  return nullptr;
-}
-
-void Interceptor::AddHookEntry(HookEntry *entry) {
-  HookEntryNode *entry_node = new HookEntryNode;
-  entry_node->entry = entry;
-
-  list_add(&entry_node->list_node, &hook_entry_list_);
-}
-
-void Interceptor::RemoveHookEntry(void *address) {
-  if (HookEntryNode *entry_node = find_hook_entry_node(address)) {
-    list_del(&entry_node->list_node);
-  }
-}
-
-int Interceptor::GetHookEntryCount() {
-  int count = 0;
-  HookEntryNode *entry_node = nullptr;
-#if defined(_MSC_VER)
-  struct list_head *list_node = nullptr;
-  for(list_node = hook_entry_list_.next; list_node != &hook_entry_list_; list_node = list_node->next) {
-    entry_node = (HookEntryNode *)((char *)list_node - offsetof(HookEntryNode, list_node));
-#else
-    list_for_each_entry(entry_node, &hook_entry_list_, list_node) {
-#endif
-    count += 1;
-  }
-  return count;
-}
diff --git a/loader/dobby/source/Interceptor.h b/loader/dobby/source/Interceptor.h
deleted file mode 100644
index 2c5afb0e..00000000
--- a/loader/dobby/source/Interceptor.h
+++ /dev/null
@@ -1,37 +0,0 @@
-#ifndef INTERCEPTOR_H
-#define INTERCEPTOR_H
-
-#include "dobby_internal.h"
-
-#include "include/list_structure.h"
-
-typedef struct {
-  struct list_head list_node;
-  HookEntry *entry;
-} HookEntryNode;
-
-class Interceptor {
-public:
-  static Interceptor *SharedInstance();
-
-  HookEntry *FindHookEntry(void *address);
-
-  void AddHookEntry(HookEntry *entry);
-
-  void RemoveHookEntry(void *address);
-
-  int GetHookEntryCount();
-
-private:
-  Interceptor() {
-  }
-
-  HookEntryNode *find_hook_entry_node(void *address);
-
-private:
-  struct list_head hook_entry_list_;
-
-  static Interceptor *priv_interceptor_;
-};
-
-#endif
diff --git a/loader/dobby/source/MemoryAllocator/AssemblyCodeBuilder.cc b/loader/dobby/source/MemoryAllocator/AssemblyCodeBuilder.cc
deleted file mode 100644
index 2e123a6a..00000000
--- a/loader/dobby/source/MemoryAllocator/AssemblyCodeBuilder.cc
+++ /dev/null
@@ -1,47 +0,0 @@
-#include "MemoryAllocator/AssemblyCodeBuilder.h"
-
-#include "dobby_internal.h"
-#include "PlatformUnifiedInterface/ExecMemory/CodePatchTool.h"
-
-AssemblyCodeChunk *AssemblyCodeBuilder::FinalizeFromAddress(addr_t address, int size) {
-  AssemblyCodeChunk *result = NULL;
-  result = new AssemblyCodeChunk;
-  result->init_region_range(address, size);
-  return result;
-}
-
-AssemblyCodeChunk *AssemblyCodeBuilder::FinalizeFromTurboAssembler(AssemblerBase *assembler) {
-  AssemblyCodeChunk *result = NULL;
-
-  CodeBufferBase *buffer = NULL;
-  buffer = (CodeBufferBase *)assembler->GetCodeBuffer();
-
-  void *realized_address = assembler->GetRealizedAddress();
-  if (realized_address == NULL) {
-    int buffer_size = 0;
-    {
-      buffer_size = buffer->getSize();
-#if TARGET_ARCH_ARM64 || TARGET_ARCH_ARM
-      // FIXME: need it ? actually ???
-      // extra bytes for align needed
-      buffer_size += 4;
-#endif
-    }
-
-    // assembler without specific memory address
-    result = MemoryArena::AllocateCodeChunk(buffer_size);
-    if (result == NULL)
-      return NULL;
-
-    realized_address = (void *)result->raw_instruction_start();
-    assembler->SetRealizedAddress(realized_address);
-  } else {
-    result = AssemblyCodeBuilder::FinalizeFromAddress((addr_t)realized_address, buffer->getSize());
-  }
-
-  // Realize(Relocate) the buffer_code to the executable_memory_address, remove the ExternalLabels, etc, the pc-relative
-  // instructions
-  CodePatch(realized_address, (uint8_t *)buffer->getRawBuffer(), buffer->getSize());
-
-  return result;
-}
\ No newline at end of file
diff --git a/loader/dobby/source/MemoryAllocator/AssemblyCodeBuilder.h b/loader/dobby/source/MemoryAllocator/AssemblyCodeBuilder.h
deleted file mode 100644
index 71292b77..00000000
--- a/loader/dobby/source/MemoryAllocator/AssemblyCodeBuilder.h
+++ /dev/null
@@ -1,39 +0,0 @@
-#ifndef MemoryAllocator_AssemblyCodeBuilder_h
-#define MemoryAllocator_AssemblyCodeBuilder_h
-
-#include "MemoryAllocator/MemoryArena.h"
-
-#include "core/modules/assembler/assembler.h"
-
-using namespace zz;
-
-class AssemblyCodeBuilder {
-public:
-  // realize the buffer address to runtime code, and create a corresponding Code Object
-  static AssemblyCodeChunk *FinalizeFromAddress(addr_t address, int size);
-
-  // realize the buffer address to runtime code, and create a corresponding Code Object
-  static AssemblyCodeChunk *FinalizeFromTurboAssembler(AssemblerBase *assembler);
-
-  // inline void init_region_range(addr_t address, int size) {
-  //   code_range_.address = (void *)address;
-  //   code_range_.length  = size;
-  // }
-
-  // inline void re_init_region_range(addr_t address, int size) {
-  //   this->init_region_range(address, size);
-  // }
-
-  // inline addr_t raw_instruction_start() {
-  //   return (addr_t)code_range_.address;
-  // };
-
-  // inline int raw_instruction_size() {
-  //   return (int)code_range_.length;
-  // };
-
-private:
-  // AssemblyCodeChunk code_range_;
-};
-
-#endif
diff --git a/loader/dobby/source/MemoryAllocator/CodeBuffer/CodeBufferBase.cc b/loader/dobby/source/MemoryAllocator/CodeBuffer/CodeBufferBase.cc
deleted file mode 100644
index 83506e29..00000000
--- a/loader/dobby/source/MemoryAllocator/CodeBuffer/CodeBufferBase.cc
+++ /dev/null
@@ -1,77 +0,0 @@
-#include "MemoryAllocator/CodeBuffer/CodeBufferBase.h"
-
-#include "xnucxx/LiteMemOpt.h"
-
-// alk
-#include <iomanip>
-#include <iostream>
-
-CodeBufferBase *CodeBufferBase::Copy() {
-  CodeBufferBase *result = new CodeBufferBase(this->getCapacity());
-  result->EmitBuffer(this->getRawBuffer(), this->getSize());
-  return result;
-}
-
-void CodeBufferBase::Emit8(uint8_t value) {
-	DLOG(0, "[code buffer] Emit8 with %x, cursor %x", value, buffer_cursor);
-  // Ensure the free space enough for the template T value
-  this->ensureCapacity(sizeof(uint8_t) + this->getSize());
-
-  *reinterpret_cast<uint8_t *>(buffer_cursor) = value;
-  buffer_cursor += sizeof(uint8_t);
-}
-
-void CodeBufferBase::Emit16(uint16_t value) {
-	DLOG(0, "[code buffer] Emit16 with %x, cursor %x", value, buffer_cursor);
-  // Ensure the free space enough for the template T value
-  this->ensureCapacity(sizeof(uint16_t) + this->getSize());
-
-  *reinterpret_cast<uint16_t *>(buffer_cursor) = value;
-  buffer_cursor += sizeof(uint16_t);
-}
-
-void CodeBufferBase::Emit32(uint32_t value) {
-	DLOG(0, "[code buffer] Emit32 with %x, cursor %x", value, buffer_cursor);
-  // Ensure the free space enough for the template T value
-  this->ensureCapacity(sizeof(uint32_t) + this->getSize());
-
-  *reinterpret_cast<uint32_t *>(buffer_cursor) = value;
-  buffer_cursor += sizeof(uint32_t);
-}
-
-void CodeBufferBase::Emit64(uint64_t value) {
-	DLOG(0, "[code buffer] Emit64 with %x, cursor %x", value, buffer_cursor);
-  // Ensure the free space enough for the template T value
-  this->ensureCapacity(sizeof(uint64_t) + this->getSize());
-
-  *reinterpret_cast<uint64_t *>(buffer_cursor) = value;
-  buffer_cursor += sizeof(uint64_t);
-}
-
-void CodeBufferBase::EmitBuffer(void *buffer, int buffer_size) {
-	DLOG(0, "[code buffer] EmitBuffer with size %d, cursor %x", buffer_size, buffer_cursor);
-  // Ensure the free space enough for the template T value
-  this->ensureCapacity(buffer_size + this->getSize());
-
-  _memcpy(buffer_cursor, buffer, buffer_size);
-
-  buffer_cursor += buffer_size;
-}
-
-#if 0 // Template Advanced won't enable even in userspace
-template <typename T> T CodeBufferBase::Load(int offset) {
-  return *reinterpret_cast<T *>(buffer + offset);
-}
-
-template <typename T> void CodeBufferBase::Store(int offset, T value) {
-  *reinterpret_cast<T *>(buffer + offset) = value;
-}
-
-template <typename T> void CodeBufferBase::Emit(T value) {
-  // Ensure the free space enough for the template T value
-  ensureCapacity(sizeof(T) + getSize());
-
-  *reinterpret_cast<T *>(buffer_cursor) = value;
-  buffer_cursor += sizeof(T);
-}
-#endif
diff --git a/loader/dobby/source/MemoryAllocator/CodeBuffer/CodeBufferBase.h b/loader/dobby/source/MemoryAllocator/CodeBuffer/CodeBufferBase.h
deleted file mode 100644
index 86b6356b..00000000
--- a/loader/dobby/source/MemoryAllocator/CodeBuffer/CodeBufferBase.h
+++ /dev/null
@@ -1,38 +0,0 @@
-#ifndef CODE_BUFFER_BASE_H
-#define CODE_BUFFER_BASE_H
-
-#include "xnucxx/LiteMutableBuffer.h"
-
-class CodeBufferBase : public LiteMutableBuffer {
-public:
-  CodeBufferBase() : LiteMutableBuffer() {
-  }
-
-  CodeBufferBase(int size) : LiteMutableBuffer(size) {
-  }
-
-public:
-  virtual CodeBufferBase *Copy();
-
-  void Emit8(uint8_t data);
-
-  void Emit16(uint16_t data);
-
-  void Emit32(uint32_t data);
-
-  void Emit64(uint64_t data);
-
-  void EmitBuffer(void *buffer, int len);
-
-  void EmitObject(LiteObject *object);
-
-#if 0 // Template Advanced won't enable even in userspace
-  template <typename T> T Load(int offset);
-
-  template <typename T> void Store(int offset, T value);
-
-  template <typename T> void Emit(T value);
-#endif
-};
-
-#endif
diff --git a/loader/dobby/source/MemoryAllocator/CodeBuffer/code-buffer-arm.cc b/loader/dobby/source/MemoryAllocator/CodeBuffer/code-buffer-arm.cc
deleted file mode 100644
index 19805190..00000000
--- a/loader/dobby/source/MemoryAllocator/CodeBuffer/code-buffer-arm.cc
+++ /dev/null
@@ -1,88 +0,0 @@
-#include "platform_macro.h"
-#if defined(TARGET_ARCH_ARM)
-
-#include <string.h>
-
-#include "MemoryAllocator/CodeBuffer/code-buffer-arm.h"
-
-arm_inst_t CodeBuffer::LoadARMInst(int offset) {
-  return *reinterpret_cast<arm_inst_t *>(buffer + offset);
-}
-
-thumb1_inst_t CodeBuffer::LoadThumb1Inst(int offset) {
-  return *reinterpret_cast<thumb1_inst_t *>(buffer + offset);
-};
-
-thumb2_inst_t CodeBuffer::LoadThumb2Inst(int offset) {
-  return *reinterpret_cast<thumb2_inst_t *>(buffer + offset);
-};
-
-void CodeBuffer::RewriteAddr(int offset, addr32_t addr) {
-  memcpy(buffer + offset, &addr, sizeof(addr));
-#if 0
-  // SIGBUS (signal SIGBUS: illegal alignment)
-  *reinterpret_cast<addr32_t *>(buffer + offset) = addr;
-#endif
-  return;
-}
-
-void CodeBuffer::RewriteARMInst(int offset, arm_inst_t instr) {
-  *reinterpret_cast<arm_inst_t *>(buffer + offset) = instr;
-  return;
-}
-
-void CodeBuffer::RewriteThumb1Inst(int offset, thumb1_inst_t instr) {
-  *reinterpret_cast<thumb1_inst_t *>(buffer + offset) = instr;
-  return;
-}
-
-void CodeBuffer::RewriteThumb2Inst(int offset, thumb2_inst_t instr) {
-  memcpy(buffer + offset, &instr, sizeof(instr));
-#if 0
-  // SIGBUS (signal SIGBUS: illegal alignment)
-  *reinterpret_cast<thumb2_inst_t *>(buffer + offset) = instr;
-#endif
-  return;
-}
-
-void CodeBuffer::EmitARMInst(arm_inst_t instr) {
-	DLOG(0, "[code buffer] EmitARMInst from arm32 with %x, cursor %x", instr, buffer_cursor);
-  ensureCapacity(getSize() + sizeof(arm_inst_t));
-  *reinterpret_cast<arm_inst_t *>(buffer_cursor) = instr;
-  buffer_cursor += sizeof(arm_inst_t);
-  return;
-}
-
-void CodeBuffer::EmitThumb1Inst(thumb1_inst_t instr) {
-	DLOG(0, "[code buffer] EmitThumb1Inst from arm32 with %x, cursor %x", instr, buffer_cursor);
-  ensureCapacity(getSize() + sizeof(thumb1_inst_t));
-  *reinterpret_cast<thumb1_inst_t *>(buffer_cursor) = instr;
-  buffer_cursor += sizeof(thumb1_inst_t);
-  return;
-}
-
-void CodeBuffer::EmitThumb2Inst(thumb2_inst_t instr) {
-	DLOG(0, "[code buffer] EmitThumb2Inst from arm32 with %x, cursor %x", instr, buffer_cursor);
-  ensureCapacity(getSize() + sizeof(thumb2_inst_t));
-  memcpy(buffer_cursor, &instr, sizeof(instr));
-#if 0
-  // SIGBUS (signal SIGBUS: illegal alignment)
-  *reinterpret_cast<thumb2_inst_t *>(buffer_cursor) = instr;
-#endif
-  buffer_cursor += sizeof(thumb2_inst_t);
-  return;
-}
-
-void CodeBuffer::Emit32(int32_t data) {
-	DLOG(0, "[code buffer] Emit32 from arm32 with %x, cursor %x", data, buffer_cursor);
-  ensureCapacity(getSize() + sizeof(int32_t));
-  memcpy(buffer_cursor, &data, sizeof(data));
-#if 0
-  // SIGBUS (signal SIGBUS: illegal alignment)
-  *reinterpret_cast<int32_t *>(buffer_cursor) = data;
-#endif
-  buffer_cursor += sizeof(int32_t);
-  return;
-}
-
-#endif
diff --git a/loader/dobby/source/MemoryAllocator/CodeBuffer/code-buffer-arm.h b/loader/dobby/source/MemoryAllocator/CodeBuffer/code-buffer-arm.h
deleted file mode 100644
index 7dcb220e..00000000
--- a/loader/dobby/source/MemoryAllocator/CodeBuffer/code-buffer-arm.h
+++ /dev/null
@@ -1,44 +0,0 @@
-#ifndef CODE_BUFFER_ARM_H
-#define CODE_BUFFER_ARM_H
-
-#include "MemoryAllocator/CodeBuffer/CodeBufferBase.h"
-
-typedef int32_t arm_inst_t;
-typedef int16_t thumb1_inst_t;
-typedef int32_t thumb2_inst_t;
-
-class CodeBuffer : public CodeBufferBase {
-  enum ExecuteState { ARMExecuteState, ThumbExecuteState };
-
-public:
-  CodeBuffer() : CodeBufferBase() {
-  }
-
-  CodeBuffer(int size) : CodeBufferBase(size) {
-  }
-
-public:
-  arm_inst_t LoadARMInst(int offset);
-
-  thumb1_inst_t LoadThumb1Inst(int offset);
-
-  thumb2_inst_t LoadThumb2Inst(int offset);
-
-  void RewriteAddr(int offset, addr32_t addr);
-
-  void RewriteARMInst(int offset, arm_inst_t instr);
-
-  void RewriteThumb1Inst(int offset, thumb1_inst_t instr);
-
-  void RewriteThumb2Inst(int offset, thumb2_inst_t instr);
-
-  void EmitARMInst(arm_inst_t instr);
-
-  void EmitThumb1Inst(thumb1_inst_t instr);
-
-  void EmitThumb2Inst(thumb2_inst_t instr);
-
-  void Emit32(int32_t data);
-};
-
-#endif
\ No newline at end of file
diff --git a/loader/dobby/source/MemoryAllocator/CodeBuffer/code-buffer-arm64.cc b/loader/dobby/source/MemoryAllocator/CodeBuffer/code-buffer-arm64.cc
deleted file mode 100644
index 71f6274f..00000000
--- a/loader/dobby/source/MemoryAllocator/CodeBuffer/code-buffer-arm64.cc
+++ /dev/null
@@ -1,31 +0,0 @@
-#include "platform_macro.h"
-#if defined(TARGET_ARCH_ARM64)
-
-#include "MemoryAllocator/CodeBuffer/code-buffer-arm64.h"
-
-arm64_inst_t CodeBuffer::LoadInst(int offset) {
-  return *reinterpret_cast<int32_t *>(buffer + offset);
-}
-
-void CodeBuffer::FixBindLabel(int offset, arm64_inst_t instr) {
-  *reinterpret_cast<arm64_inst_t *>(buffer + offset) = instr;
-  return;
-}
-
-void CodeBuffer::EmitInst(arm64_inst_t instr) {
-	DLOG(0, "[code buffer] EmitInst from arm64 with %x, cursor %x", instr, buffer_cursor);
-  ensureCapacity(getSize() + sizeof(arm64_inst_t));
-  *reinterpret_cast<arm64_inst_t *>(getCursor()) = instr;
-  buffer_cursor += sizeof(arm64_inst_t);
-  return;
-}
-
-void CodeBuffer::Emit64(int64_t data) {
-	DLOG(0, "[code buffer] Emit64 from arm64 with %x, cursor %x", data, buffer_cursor);
-  ensureCapacity(getSize() + sizeof(int64_t));
-  *reinterpret_cast<int64_t *>(getCursor()) = data;
-  buffer_cursor += sizeof(int64_t);
-  return;
-}
-
-#endif
diff --git a/loader/dobby/source/MemoryAllocator/CodeBuffer/code-buffer-arm64.h b/loader/dobby/source/MemoryAllocator/CodeBuffer/code-buffer-arm64.h
deleted file mode 100644
index e5cac682..00000000
--- a/loader/dobby/source/MemoryAllocator/CodeBuffer/code-buffer-arm64.h
+++ /dev/null
@@ -1,27 +0,0 @@
-#ifndef CODE_BUFFER_ARM64_H
-#define CODE_BUFFER_ARM64_H
-
-#include "MemoryAllocator/CodeBuffer/CodeBufferBase.h"
-
-typedef int32_t arm64_inst_t;
-
-class CodeBuffer : public CodeBufferBase {
-
-public:
-  CodeBuffer() : CodeBufferBase() {
-  }
-
-  CodeBuffer(int size) : CodeBufferBase(size) {
-  }
-
-public:
-  arm64_inst_t LoadInst(int offset);
-
-  void FixBindLabel(int offset, arm64_inst_t instr);
-
-  void EmitInst(arm64_inst_t instr);
-
-  void Emit64(int64_t data);
-};
-
-#endif
diff --git a/loader/dobby/source/MemoryAllocator/CodeBuffer/code-buffer-x64.cc b/loader/dobby/source/MemoryAllocator/CodeBuffer/code-buffer-x64.cc
deleted file mode 100644
index 44a2291c..00000000
--- a/loader/dobby/source/MemoryAllocator/CodeBuffer/code-buffer-x64.cc
+++ /dev/null
@@ -1,32 +0,0 @@
-#include "platform_macro.h"
-#if defined(TARGET_ARCH_X64)
-
-// alk
-#include <iomanip>
-#include <iostream>
-
-
-#include "MemoryAllocator/CodeBuffer/code-buffer-x64.h"
-
-void CodeBuffer::Emit32(int32_t data) {
-	DLOG(0, "[code buffer] Emit32 from x64 with %x, cursor %x", data, buffer_cursor);
-  ensureCapacity(getSize() + sizeof(int32_t));
-  *reinterpret_cast<int32_t *>(getCursor()) = data;
-  buffer_cursor += sizeof(int32_t);
-  return;
-}
-
-void CodeBuffer::Emit64(int64_t data) {
-	DLOG(0, "[code buffer] Emit64 from x64 with %x, cursor %x", data, buffer_cursor);
-  ensureCapacity(getSize() + sizeof(int64_t));
-  *reinterpret_cast<int64_t *>(getCursor()) = data;
-  buffer_cursor += sizeof(int64_t);
-  return;
-}
-
-void CodeBuffer::FixBindLabel(int offset, int32_t disp) {
-  *reinterpret_cast<uint32_t *>(buffer + offset) = disp;
-  return;
-}
-
-#endif
diff --git a/loader/dobby/source/MemoryAllocator/CodeBuffer/code-buffer-x64.h b/loader/dobby/source/MemoryAllocator/CodeBuffer/code-buffer-x64.h
deleted file mode 100644
index 926b5522..00000000
--- a/loader/dobby/source/MemoryAllocator/CodeBuffer/code-buffer-x64.h
+++ /dev/null
@@ -1,22 +0,0 @@
-#ifndef CODE_BUFFER_X64_H
-#define CODE_BUFFER_X64_H
-
-#include "MemoryAllocator/CodeBuffer/CodeBufferBase.h"
-
-class CodeBuffer : public CodeBufferBase {
-public:
-  CodeBuffer() : CodeBufferBase() {
-  }
-
-  CodeBuffer(int size) : CodeBufferBase(size) {
-  }
-
-public:
-  void FixBindLabel(int offset, int32_t disp);
-
-  void Emit32(int32_t data);
-
-  void Emit64(int64_t data);
-};
-
-#endif
\ No newline at end of file
diff --git a/loader/dobby/source/MemoryAllocator/CodeBuffer/code-buffer-x86.cc b/loader/dobby/source/MemoryAllocator/CodeBuffer/code-buffer-x86.cc
deleted file mode 100644
index b95d6cdf..00000000
--- a/loader/dobby/source/MemoryAllocator/CodeBuffer/code-buffer-x86.cc
+++ /dev/null
@@ -1,24 +0,0 @@
-#include "platform_macro.h"
-#if defined(TARGET_ARCH_IA32)
-
-// alk
-#include <iomanip>
-#include <iostream>
-
-
-#include "MemoryAllocator/CodeBuffer/code-buffer-x86.h"
-
-void CodeBuffer::Emit32(int32_t data) {
-	DLOG(0, "[code buffer] Emit32 from x86 with %x, cursor %x", data, buffer_cursor);
-  ensureCapacity(getSize() + sizeof(int32_t));
-  *reinterpret_cast<int32_t *>(getCursor()) = data;
-  buffer_cursor += sizeof(int32_t);
-  return;
-}
-
-void CodeBuffer::FixBindLabel(int offset, int32_t disp) {
-  *reinterpret_cast<uint32_t *>(buffer + offset) = disp;
-  return;
-}
-
-#endif
diff --git a/loader/dobby/source/MemoryAllocator/CodeBuffer/code-buffer-x86.h b/loader/dobby/source/MemoryAllocator/CodeBuffer/code-buffer-x86.h
deleted file mode 100644
index 64775c65..00000000
--- a/loader/dobby/source/MemoryAllocator/CodeBuffer/code-buffer-x86.h
+++ /dev/null
@@ -1,20 +0,0 @@
-#ifndef CODE_BUFFER_X86_H
-#define CODE_BUFFER_X86_H
-
-#include "MemoryAllocator/CodeBuffer/CodeBufferBase.h"
-
-class CodeBuffer : public CodeBufferBase {
-public:
-  CodeBuffer() : CodeBufferBase() {
-  }
-
-  CodeBuffer(int size) : CodeBufferBase(size) {
-  }
-
-public:
-  void FixBindLabel(int offset, int32_t disp);
-
-  void Emit32(int32_t data);
-};
-
-#endif
\ No newline at end of file
diff --git a/loader/dobby/source/MemoryAllocator/MemoryArena.cc b/loader/dobby/source/MemoryAllocator/MemoryArena.cc
deleted file mode 100644
index 05fe6c74..00000000
--- a/loader/dobby/source/MemoryAllocator/MemoryArena.cc
+++ /dev/null
@@ -1,73 +0,0 @@
-#include "MemoryAllocator/MemoryArena.h"
-
-#include "dobby_internal.h"
-
-LiteMutableArray *MemoryArena::page_chunks = NULL;
-
-void MemoryArena::Destroy(AssemblyCodeChunk *cchunk) {
-  return;
-}
-
-MemoryChunk *MemoryArena::AllocateChunk(int alloc_size, MemoryPermission permission) {
-  MemoryChunk *result = NULL;
-
-  if (page_chunks == NULL) {
-    page_chunks = new LiteMutableArray(8);
-  }
-
-  LiteCollectionIterator iter(page_chunks);
-  PageChunk *page = NULL;
-  while ((page = reinterpret_cast<PageChunk *>(iter.getNextObject())) != NULL) {
-    if (page->permission == permission) {
-      // check the page remain space is enough for the new chunk
-      if ((page->page_cursor + alloc_size) < ((addr_t)page->page.address + page->page.length)) {
-        break;
-      }
-    }
-  }
-
-  // alloc a new executable page.
-  if (!page) {
-    int pageSize = OSMemory::PageSize();
-    void *pageAddress = OSMemory::Allocate(NULL, pageSize, permission);
-    if (pageAddress == NULL) {
-      ERROR_LOG("Failed to alloc page");
-      return NULL;
-    }
-
-    PageChunk *newPage = new PageChunk;
-    newPage->page.address = pageAddress;
-    newPage->page.length = pageSize;
-    newPage->page_cursor = (addr_t)pageAddress;
-    newPage->permission = permission;
-    newPage->chunks = new LiteMutableArray(8);
-    MemoryArena::page_chunks->pushObject(reinterpret_cast<LiteObject *>(newPage));
-    page = newPage;
-  }
-
-  MemoryChunk *chunk = NULL;
-  if (page) {
-    chunk = new MemoryChunk;
-    chunk->address = (void *)page->page_cursor;
-    chunk->length = alloc_size;
-
-    // update page cursor
-    page->chunks->pushObject(reinterpret_cast<LiteObject *>(chunk));
-    page->page_cursor += alloc_size;
-  }
-
-  result = chunk;
-  return result;
-}
-
-AssemblyCodeChunk *MemoryArena::AllocateCodeChunk(int alloc_size) {
-  return MemoryArena::AllocateChunk(alloc_size, kReadExecute);
-}
-
-WritableDataChunk *MemoryArena::AllocateDataChunk(int alloc_size) {
-  return MemoryArena::AllocateChunk(alloc_size, kReadWrite);
-}
-
-// UserMode
-// Search code cave from MemoryLayout
-// MemoryRegion *CodeChunk::SearchCodeCave(uword pos, uword alloc_range, size_t size) {}
diff --git a/loader/dobby/source/MemoryAllocator/MemoryArena.h b/loader/dobby/source/MemoryAllocator/MemoryArena.h
deleted file mode 100644
index 0679b834..00000000
--- a/loader/dobby/source/MemoryAllocator/MemoryArena.h
+++ /dev/null
@@ -1,54 +0,0 @@
-#ifndef MemoryAllocator_MemoryArena_h
-#define MemoryAllocator_MemoryArena_h
-
-#include "xnucxx/LiteMutableArray.h"
-
-#include "PlatformUnifiedInterface/StdMemory.h"
-
-struct MemoryChunk : MemoryRange {
-  inline void init_region_range(addr_t address, size_t size) {
-    this->address = (void *)address;
-    this->length = size;
-  }
-
-  inline void re_init_region_range(addr_t address, int size) {
-    init_region_range(address, size);
-  }
-
-  inline void re_init_region_range(MemoryChunk *chunk) {
-    init_region_range((addr_t)chunk->address, chunk->length);
-  }
-
-  inline addr_t raw_instruction_start() {
-    return (addr_t)address;
-  };
-
-  inline size_t raw_instruction_size() {
-    return length;
-  };
-};
-
-typedef MemoryChunk AssemblyCodeChunk, WritableDataChunk;
-
-typedef struct {
-  MemoryChunk page;
-  addr_t page_cursor;
-  MemoryPermission permission;
-  LiteMutableArray *chunks;
-} PageChunk;
-
-class MemoryArena {
-public:
-  static MemoryChunk *AllocateChunk(int alloc_size, MemoryPermission permission);
-
-  static WritableDataChunk *AllocateDataChunk(int alloc_size);
-
-  static AssemblyCodeChunk *AllocateCodeChunk(int alloc_size);
-
-  static void Destroy(MemoryChunk *chunk);
-
-public:
-  static LiteMutableArray *page_chunks;
-};
-
-#endif
diff --git a/loader/dobby/source/MemoryAllocator/NearMemoryArena.cc b/loader/dobby/source/MemoryAllocator/NearMemoryArena.cc
deleted file mode 100644
index 1f12c294..00000000
--- a/loader/dobby/source/MemoryAllocator/NearMemoryArena.cc
+++ /dev/null
@@ -1,275 +0,0 @@
-#include "./NearMemoryArena.h"
-
-#include "dobby_internal.h"
-
-#include "UserMode/PlatformUtil/ProcessRuntimeUtility.h"
-
-#include <iostream>
-#include <vector>
-
-using namespace zz;
-
-#define KB (1024uLL)
-#define MB (1024uLL * KB)
-#define GB (1024uLL * MB)
-
-LiteMutableArray *NearMemoryArena::page_chunks;
-
-#if defined(WIN32)
-static const void *memmem(const void *haystack, size_t haystacklen, const void *needle, size_t needlelen) {
-  if (!haystack || !needle) {
-    return haystack;
-  } else {
-    const char *h = (const char *)haystack;
-    const char *n = (const char *)needle;
-    size_t l = needlelen;
-    const char *r = h;
-    while (l && (l <= haystacklen)) {
-      if (*n++ != *h++) {
-        r = h;
-        n = (const char *)needle;
-        l = needlelen;
-      } else {
-        --l;
-      }
-      --haystacklen;
-    }
-    return l ? NULL : r;
-  }
-}
-#endif
-
-static addr_t addr_max(addr_t a, addr_t b) {
-  return a > b ? a : b;
-}
-
-static addr_t addr_sub(addr_t a, addr_t b) {
-  return a > a - b ? a - b : 0;
-}
-
-static addr_t addr_add(addr_t a, addr_t b) {
-  return a < a + b ? a + b : (addr_t)-1;
-}
-
-static addr_t prev_page(addr_t cur, int pagesize) {
-  addr_t aligned_addr = ALIGN(cur, pagesize);
-  addr_t ret = aligned_addr - pagesize;
-  return ret <= aligned_addr ? ret : aligned_addr;
-}
-
-static addr_t next_page(addr_t cur, int pagesize) {
-  addr_t aligned_addr = ALIGN(cur, pagesize);
-  addr_t ret = aligned_addr + pagesize;
-  return ret >= aligned_addr ? ret : aligned_addr;
-}
-
-#if 1
-static addr_t search_near_blank_page(addr_t pos, size_t alloc_range) {
-  addr_t min_page_addr, max_page_addr;
-  min_page_addr = next_page(addr_sub(pos, alloc_range), OSMemory::AllocPageSize());
-  max_page_addr = prev_page(addr_add(pos, alloc_range), OSMemory::AllocPageSize());
-
-  // region.start sorted
-  std::vector<MemoryRegion> process_memory_layout = ProcessRuntimeUtility::GetProcessMemoryLayout();
-  assert(process_memory_layout.size() > 0);
-
-  /*
-   * min_page_addr/--special-blank--/==region==/--right-blank--/max_page_addr
-   */
-
-  addr_t resultPageAddr = 0, assumePageAddr = min_page_addr;
-
-  // check first region
-  addr_t first_region_start = (addr_t)process_memory_layout[0].address;
-  if (min_page_addr < first_region_start) {
-    resultPageAddr = prev_page(first_region_start, OSMemory::AllocPageSize());
-    resultPageAddr =
-        (addr_t)OSMemory::Allocate((void *)assumePageAddr, OSMemory::AllocPageSize(), MemoryPermission::kReadExecute);
-    if (resultPageAddr)
-      return resultPageAddr;
-  }
-
-  // check last region
-  MemoryRegion last_region = process_memory_layout[process_memory_layout.size() - 1];
-  addr_t last_region_end = (addr_t)last_region.address + last_region.length;
-  if (max_page_addr < last_region_end) {
-    resultPageAddr = next_page(last_region_end, OSMemory::AllocPageSize());
-    resultPageAddr =
-        (addr_t)OSMemory::Allocate((void *)assumePageAddr, OSMemory::AllocPageSize(), MemoryPermission::kReadExecute);
-    if (resultPageAddr)
-      return resultPageAddr;
-  }
-
-  for (int i = 0; i < static_cast<int>(process_memory_layout.size()); ++i) {
-    MemoryRegion region = process_memory_layout[i];
-    // check if assume-page-addr in memory-layout
-    addr_t region_end = (addr_t)region.address + region.length;
-    addr_t region_start = (addr_t)region.address;
-
-    if (region_end < max_page_addr) {
-      if (region_start >= min_page_addr) {
-
-        // find the region locate in the [min_page_addr, max_page_addr]
-        if (i >= 1 && assumePageAddr == min_page_addr) {
-          MemoryRegion prev_region;
-          prev_region = process_memory_layout[i - 1];
-          addr_t prev_region_end =
-              next_page((addr_t)prev_region.address + prev_region.length, OSMemory::AllocPageSize());
-          // check if have blank cave page
-          if (region_start > prev_region_end) {
-            assumePageAddr = addr_max(min_page_addr, prev_region_end);
-            resultPageAddr = (addr_t)OSMemory::Allocate((void *)assumePageAddr, OSMemory::AllocPageSize(),
-                                                        MemoryPermission::kReadExecute);
-            if (resultPageAddr)
-              break;
-          }
-        }
-
-        if (i <= static_cast<int>(process_memory_layout.size() - 2)) {
-          // right-blank
-          MemoryRegion next_region = process_memory_layout[i + 1];
-          // check if have blank cave page
-          if (region_end < (addr_t)next_region.address) {
-            assumePageAddr = next_page((addr_t)region.address + region.length, OSMemory::AllocPageSize());
-            resultPageAddr = (addr_t)OSMemory::Allocate((void *)assumePageAddr, OSMemory::AllocPageSize(),
-                                                        MemoryPermission::kReadExecute);
-            if (resultPageAddr)
-              break;
-          }
-        }
-      }
-    }
-  }
-  return resultPageAddr;
-}
-
-NearMemoryArena::NearMemoryArena() {
-}
-
-static addr_t search_near_blank_memory_chunk(addr_t pos, size_t alloc_range, int alloc_size) {
-  addr_t min_page_addr, max_page_addr;
-  min_page_addr = next_page(addr_sub(pos, alloc_range), OSMemory::AllocPageSize());
-  max_page_addr = prev_page(addr_add(pos, alloc_range), OSMemory::AllocPageSize());
-
-  std::vector<MemoryRegion> process_memory_layout = ProcessRuntimeUtility::GetProcessMemoryLayout();
-
-  uint8_t *blank_chunk_addr = NULL;
-  for (auto region : process_memory_layout) {
-    // check if assume-page-addr in memory-layout
-    if (region.permission == kReadExecute || region.permission == kRead) {
-      if (((addr_t)region.address + region.length) <= max_page_addr) {
-        if ((addr_t)region.address >= min_page_addr) {
-#if defined(__APPLE__)
-          if (*(uint32_t *)region.address == 0xfeedfacf)
-            continue;
-#endif
-          char *blank_memory = (char *)malloc(alloc_size);
-          memset(blank_memory, 0, alloc_size);
-#if defined(__arm__) || defined(__aarch64__)
-          alloc_size += (4 - 1);
-          blank_chunk_addr = (uint8_t *)memmem(region.address, region.length, blank_memory, alloc_size);
-          if (blank_chunk_addr) {
-            int off = 4 - ((addr_t)blank_chunk_addr % 4);
-            blank_chunk_addr += off;
-          }
-#else
-          blank_chunk_addr = (uint8_t *)memmem(region.address, region.length, blank_memory, alloc_size);
-#endif
-
-          if (blank_chunk_addr)
-            break;
-        }
-      }
-    }
-  }
-  return (addr_t)blank_chunk_addr;
-}
-#endif
-
-#define NEAR_PAGE_ARRAYLEN 8
-
-int NearMemoryArena::PushPage(addr_t page_addr, MemoryPermission permission) {
-  PageChunk *newPage = new PageChunk;
-  newPage->page.address = (void *)page_addr;
-  newPage->page.length = OSMemory::PageSize();
-  newPage->page_cursor = page_addr;
-  newPage->permission = permission;
-  newPage->chunks = new LiteMutableArray(NEAR_PAGE_ARRAYLEN);
-  NearMemoryArena::page_chunks->pushObject(reinterpret_cast<LiteObject *>(newPage));
-  return RT_SUCCESS;
-}
-
-WritableDataChunk *NearMemoryArena::AllocateDataChunk(addr_t position, size_t alloc_range, int alloc_size) {
-  return NearMemoryArena::AllocateChunk(position, alloc_range, alloc_size, kReadWrite);
-}
-
-AssemblyCodeChunk *NearMemoryArena::AllocateCodeChunk(addr_t position, size_t alloc_range, int alloc_size) {
-  return NearMemoryArena::AllocateChunk(position, alloc_range, alloc_size, kReadExecute);
-}
-
-MemoryChunk *NearMemoryArena::AllocateChunk(addr_t position, size_t alloc_range, int alloc_size,
-                                            MemoryPermission permission) {
-
-                                                DLOG(0, "AllocateChunk 1");
-  if (page_chunks == NULL) {
-    page_chunks = new LiteMutableArray(NEAR_PAGE_ARRAYLEN);
-  }
-  MemoryChunk *result = NULL;
-
-search_once_more:
- DLOG(0, "AllocateChunk 2");
-  LiteCollectionIterator iter(NearMemoryArena::page_chunks);
-  PageChunk *page = NULL;
-  while ((page = reinterpret_cast<PageChunk *>(iter.getNextObject())) != NULL) {
-    if (page->permission == permission) {
-      if (llabs((intptr_t)(page->page_cursor - position)) < alloc_range) {
-        if ((page->page_cursor + alloc_size) < ((addr_t)page->page.address + page->page.length)) {
-          break;
-        }
-      }
-    }
-  }
- DLOG(0, "AllocateChunk 3");
-  MemoryChunk *chunk = NULL;
-  if (page) {
-    chunk = new MemoryChunk;
-    chunk->address = (void *)page->page_cursor;
-    chunk->length = alloc_size;
-
-    // update page cursor
-    page->chunks->pushObject(reinterpret_cast<LiteObject *>(chunk));
-    page->page_cursor += alloc_size;
-    return chunk;
-  }
- DLOG(0, "AllocateChunk 4");
-  addr_t blank_page_addr = 0;
-  blank_page_addr = search_near_blank_page(position, alloc_range);
-  if (blank_page_addr) {
-       DLOG(0, "AllocateChunk 5");
-    OSMemory::SetPermission((void *)blank_page_addr, OSMemory::PageSize(), permission);
-     DLOG(0, "AllocateChunk 6");
-    NearMemoryArena::PushPage(blank_page_addr, permission);
-     DLOG(0, "AllocateChunk 7");
-    goto search_once_more;
-  }
-
-  // TODO: fix up
-  if (permission == kReadWrite) {
-       DLOG(0, "AllocateChunk 8");
-    return NULL;
-  }
-
-  addr_t blank_chunk_addr = 0;
-   DLOG(0, "AllocateChunk 9");
-  blank_chunk_addr = search_near_blank_memory_chunk(position, alloc_range, alloc_size);
-  if (blank_chunk_addr) {
-       DLOG(0, "AllocateChunk 10");
-    MemoryChunk *chunk = NULL;
-    chunk = new MemoryChunk;
-    chunk->address = (void *)blank_chunk_addr;
-    chunk->length = alloc_size;
-    return chunk;
-  }
- DLOG(0, "AllocateChunk 11");
-  return NULL;
-}
diff --git a/loader/dobby/source/MemoryAllocator/NearMemoryArena.h b/loader/dobby/source/MemoryAllocator/NearMemoryArena.h
deleted file mode 100644
index 725a9177..00000000
--- a/loader/dobby/source/MemoryAllocator/NearMemoryArena.h
+++ /dev/null
@@ -1,25 +0,0 @@
-
-#ifndef MemoryAllocator_NearMemoryArena_h
-#define MemoryAllocator_NearMemoryArena_h
-
-#include "MemoryAllocator/MemoryArena.h"
-
-class NearMemoryArena : public MemoryArena {
-public:
-  NearMemoryArena();
-
-  static MemoryChunk *AllocateChunk(addr_t position, size_t alloc_range, int alloc_size, MemoryPermission permission);
-
-  static WritableDataChunk *AllocateDataChunk(addr_t position, size_t alloc_range, int alloc_size);
-
-  static AssemblyCodeChunk *AllocateCodeChunk(addr_t position, size_t alloc_range, int alloc_size);
-
-  static int PushPage(addr_t page_addr, MemoryPermission permission);
-
-  static void Destroy(MemoryChunk *chunk);
-
-private:
-  static LiteMutableArray *page_chunks;
-};
-
-#endif
diff --git a/loader/dobby/source/PlatformUnifiedInterface/ExecMemory/ClearCacheTool.h b/loader/dobby/source/PlatformUnifiedInterface/ExecMemory/ClearCacheTool.h
deleted file mode 100644
index ee407cb9..00000000
--- a/loader/dobby/source/PlatformUnifiedInterface/ExecMemory/ClearCacheTool.h
+++ /dev/null
@@ -1,11 +0,0 @@
-#pragma once
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-void ClearCache(void *start, void *end);
-
-#ifdef __cplusplus
-}
-#endif
\ No newline at end of file
diff --git a/loader/dobby/source/PlatformUnifiedInterface/ExecMemory/CodePatchTool.h b/loader/dobby/source/PlatformUnifiedInterface/ExecMemory/CodePatchTool.h
deleted file mode 100644
index d8ca4b00..00000000
--- a/loader/dobby/source/PlatformUnifiedInterface/ExecMemory/CodePatchTool.h
+++ /dev/null
@@ -1,9 +0,0 @@
-
-#ifndef PLATFORM_INTERFACE_CODE_PATCH_TOOL_H
-#define PLATFORM_INTERFACE_CODE_PATCH_TOOL_H
-
-#include "PlatformUnifiedInterface/StdMemory.h"
-
-MemoryOperationError CodePatch(void *address, uint8_t *buffer, uint32_t buffer_size);
-
-#endif
\ No newline at end of file
diff --git a/loader/dobby/source/PlatformUnifiedInterface/StdMemory.h b/loader/dobby/source/PlatformUnifiedInterface/StdMemory.h
deleted file mode 100644
index 384f38cb..00000000
--- a/loader/dobby/source/PlatformUnifiedInterface/StdMemory.h
+++ /dev/null
@@ -1,21 +0,0 @@
-#ifndef UNIFIED_INTERFACE_STD_MEMORY_H
-#define UNIFIED_INTERFACE_STD_MEMORY_H
-
-#include "common_header.h"
-
-enum MemoryPermission { kNoAccess, kRead, kReadWrite, kReadWriteExecute, kReadExecute };
-
-typedef struct _MemoryRange {
-  void *address;
-  size_t length;
-} MemoryRange;
-
-typedef struct _MemoryRegion {
-  void *address;
-  size_t length;
-  MemoryPermission permission;
-} MemoryRegion;
-
-typedef MemoryRegion MemoryPage;
-
-#endif
diff --git a/loader/dobby/source/TrampolineBridge/ClosureTrampolineBridge/AssemblyClosureTrampoline.h b/loader/dobby/source/TrampolineBridge/ClosureTrampolineBridge/AssemblyClosureTrampoline.h
deleted file mode 100644
index 2c904ee4..00000000
--- a/loader/dobby/source/TrampolineBridge/ClosureTrampolineBridge/AssemblyClosureTrampoline.h
+++ /dev/null
@@ -1,42 +0,0 @@
-#ifndef ASSEMBLY_CLOSURE_TRAMPOLINE_H
-#define ASSEMBLY_CLOSURE_TRAMPOLINE_H
-
-#include "dobby_internal.h"
-
-#ifdef ENABLE_CLOSURE_TRAMPOLINE_TEMPLATE
-#ifdef __cplusplus
-extern "C" {
-#endif //__cplusplus
-void closure_trampoline_template();
-void closure_bridge_template();
-#ifdef __cplusplus
-}
-#endif //__cplusplus
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif //__cplusplus
-
-typedef struct _ClosureTrampolineEntry {
-  void *address;
-  int size;
-  void *carry_handler;
-  void *carry_data;
-} ClosureTrampolineEntry;
-
-void *get_closure_bridge();
-
-#ifdef __cplusplus
-}
-#endif //__cplusplus
-
-class ClosureTrampoline {
-private:
-  static LiteMutableArray *trampolines_;
-
-public:
-  static ClosureTrampolineEntry *CreateClosureTrampoline(void *carry_data, void *carry_handler);
-};
-
-#endif
diff --git a/loader/dobby/source/TrampolineBridge/ClosureTrampolineBridge/arm/ARMAssemblyClosureTrampoline.cc b/loader/dobby/source/TrampolineBridge/ClosureTrampolineBridge/arm/ARMAssemblyClosureTrampoline.cc
deleted file mode 100644
index f38e9266..00000000
--- a/loader/dobby/source/TrampolineBridge/ClosureTrampolineBridge/arm/ARMAssemblyClosureTrampoline.cc
+++ /dev/null
@@ -1,51 +0,0 @@
-#include "platform_macro.h"
-#if defined(TARGET_ARCH_ARM)
-
-#include "dobby_internal.h"
-
-#include "core/modules/assembler/assembler-arm.h"
-
-#include "TrampolineBridge/ClosureTrampolineBridge/AssemblyClosureTrampoline.h"
-
-using namespace zz;
-using namespace zz::arm;
-
-ClosureTrampolineEntry *ClosureTrampoline::CreateClosureTrampoline(void *carry_data, void *carry_handler) {
-  ClosureTrampolineEntry *entry = nullptr;
-  entry = new ClosureTrampolineEntry;
-
-#ifdef ENABLE_CLOSURE_TRAMPOLINE_TEMPLATE
-#define CLOSURE_TRAMPOLINE_SIZE (7 * 4)
-  // use closure trampoline template code, find the executable memory and patch it.
-  Code *code = Code::FinalizeCodeFromAddress(closure_trampoline_template, CLOSURE_TRAMPOLINE_SIZE);
-#else
-
-// use assembler and codegen modules instead of template_code
-#include "TrampolineBridge/ClosureTrampolineBridge/AssemblyClosureTrampoline.h"
-#define _ turbo_assembler_.
-  TurboAssembler turbo_assembler_(0);
-
-  PseudoLabel entry_label;
-  PseudoLabel forward_bridge_label;
-
-  _ Ldr(r12, &entry_label);
-  _ Ldr(pc, &forward_bridge_label);
-  _ PseudoBind(&entry_label);
-  _ EmitAddress((uint32_t)entry);
-  _ PseudoBind(&forward_bridge_label);
-  _ EmitAddress((uint32_t)get_closure_bridge());
-
-  AssemblyCodeChunk *code = nullptr;
-  code = AssemblyCodeBuilder::FinalizeFromTurboAssembler(&turbo_assembler_);
-
-  entry->address = (void *)code->raw_instruction_start();
-  entry->size = code->raw_instruction_size();
-  entry->carry_data = carry_data;
-  entry->carry_handler = carry_handler;
-
-  delete code;
-  return entry;
-#endif
-}
-
-#endif
\ No newline at end of file
diff --git a/loader/dobby/source/TrampolineBridge/ClosureTrampolineBridge/arm/closure-bridge-arm.cc b/loader/dobby/source/TrampolineBridge/ClosureTrampolineBridge/arm/closure-bridge-arm.cc
deleted file mode 100644
index 9e10d953..00000000
--- a/loader/dobby/source/TrampolineBridge/ClosureTrampolineBridge/arm/closure-bridge-arm.cc
+++ /dev/null
@@ -1,90 +0,0 @@
-#include "platform_macro.h"
-#if defined(TARGET_ARCH_ARM)
-
-#include "dobby_internal.h"
-
-#include "core/modules/assembler/assembler-arm.h"
-
-#include "TrampolineBridge/ClosureTrampolineBridge/common-bridge-handler.h"
-
-using namespace zz;
-using namespace zz::arm;
-
-static void *closure_bridge = NULL;
-
-void *get_closure_bridge() {
-
-  // if already initialized, just return.
-  if (closure_bridge)
-    return closure_bridge;
-
-// check if enable the inline-assembly closure_bridge_template
-#if ENABLE_CLOSURE_BRIDGE_TEMPLATE
-  extern void closure_bridge_tempate();
-  closure_bridge = closure_bridge_template;
-// otherwise, use the Assembler build the closure_bridge
-#else
-#define _ turbo_assembler_.
-  TurboAssembler turbo_assembler_(0);
-
-  _ sub(sp, sp, Operand(14 * 4));
-  _ str(lr, MemOperand(sp, 13 * 4));
-  _ str(r12, MemOperand(sp, 12 * 4));
-  _ str(r11, MemOperand(sp, 11 * 4));
-  _ str(r10, MemOperand(sp, 10 * 4));
-  _ str(r9, MemOperand(sp, 9 * 4));
-  _ str(r8, MemOperand(sp, 8 * 4));
-  _ str(r7, MemOperand(sp, 7 * 4));
-  _ str(r6, MemOperand(sp, 6 * 4));
-  _ str(r5, MemOperand(sp, 5 * 4));
-  _ str(r4, MemOperand(sp, 4 * 4));
-  _ str(r3, MemOperand(sp, 3 * 4));
-  _ str(r2, MemOperand(sp, 2 * 4));
-  _ str(r1, MemOperand(sp, 1 * 4));
-  _ str(r0, MemOperand(sp, 0 * 4));
-
-  // store sp
-  _ add(r0, sp, Operand(14 * 4));
-  _ sub(sp, sp, Operand(8));
-  _ str(r0, MemOperand(sp, 4));
-
-  // stack align
-  _ sub(sp, sp, Operand(8));
-
-  _ mov(r0, Operand(sp));
-  _ mov(r1, Operand(r12));
-  _ CallFunction(ExternalReference((void *)intercept_routing_common_bridge_handler));
-
-  // stack align
-  _ add(sp, sp, Operand(8));
-
-  // restore sp placeholder stack
-  _ add(sp, sp, Operand(8));
-
-  _ ldr(r0, MemOperand(sp, 4, PostIndex));
-  _ ldr(r1, MemOperand(sp, 4, PostIndex));
-  _ ldr(r2, MemOperand(sp, 4, PostIndex));
-  _ ldr(r3, MemOperand(sp, 4, PostIndex));
-  _ ldr(r4, MemOperand(sp, 4, PostIndex));
-  _ ldr(r5, MemOperand(sp, 4, PostIndex));
-  _ ldr(r6, MemOperand(sp, 4, PostIndex));
-  _ ldr(r7, MemOperand(sp, 4, PostIndex));
-  _ ldr(r8, MemOperand(sp, 4, PostIndex));
-  _ ldr(r9, MemOperand(sp, 4, PostIndex));
-  _ ldr(r10, MemOperand(sp, 4, PostIndex));
-  _ ldr(r11, MemOperand(sp, 4, PostIndex));
-  _ ldr(r12, MemOperand(sp, 4, PostIndex));
-  _ ldr(lr, MemOperand(sp, 4, PostIndex));
-
-  // auto switch A32 & T32 with `least significant bit`, refer `docs/A32_T32_states_switch.md`
-  _ mov(pc, Operand(r12));
-
-  AssemblyCodeChunk *code = AssemblyCodeBuilder::FinalizeFromTurboAssembler(&turbo_assembler_);
-  closure_bridge = (void *)code->raw_instruction_start();
-
-  DLOG(0, "[closure bridge] Build the closure bridge at %p", closure_bridge);
-#endif
-  return (void *)closure_bridge;
-}
-
-#endif
\ No newline at end of file
diff --git a/loader/dobby/source/TrampolineBridge/ClosureTrampolineBridge/arm/dummy/closure-bridge-template-arm.cc b/loader/dobby/source/TrampolineBridge/ClosureTrampolineBridge/arm/dummy/closure-bridge-template-arm.cc
deleted file mode 100644
index 3c1cf0b2..00000000
--- a/loader/dobby/source/TrampolineBridge/ClosureTrampolineBridge/arm/dummy/closure-bridge-template-arm.cc
+++ /dev/null
@@ -1,65 +0,0 @@
-// .section	__TEXT,__text,regular,pure_instructions
-// .ios_version_min 11, 0
-
-#if defined(ENABLE_CLOSURE_BRIDGE_TEMPLATE)
-
-#if defined(__WIN32__) || defined(__APPLE__)
-#define cdecl(s) "_" s
-#else
-#define cdecl(s) s
-#endif
-
-#define xASM(x) __asm(x)
-
-__attribute__((naked)) void closure_bridge_template() {
-  xASM(".arm");
-  xASM("sub sp, sp, #(14*4)");
-  xASM("str lr, [sp, #(13*4)]");
-  xASM("str r12, [sp, #(12*4)]");
-  xASM("str r11, [sp, #(11*4)]");
-  xASM("str r10, [sp, #(10*4)]");
-  xASM("str r9, [sp, #(9*4)]");
-  xASM("str r8, [sp, #(8*4)]");
-  xASM("str r7, [sp, #(7*4)]");
-  xASM("str r6, [sp, #(6*4)]");
-  xASM("str r5, [sp, #(5*4)]");
-  xASM("str r4, [sp, #(4*4)]");
-  xASM("str r3, [sp, #(3*4)]");
-  xASM("str r2, [sp, #(2*4)]");
-  xASM("str r1, [sp, #(1*4)]");
-  xASM("str r0, [sp, #(0*4)]");
-
-  // dummy align
-  xASM("sub sp, sp, #8");
-
-  xASM("mov r0, sp");
-  xASM("mov r1, r12");
-  xASM("bl " cdecl("intercept_routing_common_bridge_handler"));
-
-  // dummy align
-  xASM("add sp, sp, #8");
-
-  xASM("ldr r0, [sp], #4");
-  xASM("ldr r1, [sp], #4");
-  xASM("ldr r2, [sp], #4");
-  xASM("ldr r3, [sp], #4");
-  xASM("ldr r4, [sp], #4");
-  xASM("ldr r5, [sp], #4");
-  xASM("ldr r6, [sp], #4");
-  xASM("ldr r7, [sp], #4");
-  xASM("ldr r8, [sp], #4");
-  xASM("ldr r9, [sp], #4");
-  xASM("ldr r10, [sp], #4");
-  xASM("ldr r11, [sp], #4");
-  xASM("ldr r12, [sp], #4");
-  xASM("ldr lr, [sp], #4");
-
-#if 1
-  xASM("str r12, [sp, #-4]");
-  xASM("ldr pc, [sp, #-4]");
-#else
-  xASM("mov pc, r12");
-#endif
-}
-
-#endif
\ No newline at end of file
diff --git a/loader/dobby/source/TrampolineBridge/ClosureTrampolineBridge/arm/dummy/closure-trampoline-template-arm.S b/loader/dobby/source/TrampolineBridge/ClosureTrampolineBridge/arm/dummy/closure-trampoline-template-arm.S
deleted file mode 100644
index 6ee7cff1..00000000
--- a/loader/dobby/source/TrampolineBridge/ClosureTrampolineBridge/arm/dummy/closure-trampoline-template-arm.S
+++ /dev/null
@@ -1,40 +0,0 @@
-// .section	__TEXT,__text,regular,pure_instructions
-
-#if defined(ENABLE_CLOSURE_BRIDGE_TEMPLATE)
-
-#if defined(__WIN32__) || defined(__APPLE__)
-#define cdecl(s) _##s
-#else
-#define cdecl(s) s
-#endif
-
-.align 4
-
-#if !defined(ENABLE_CLOSURE_TRAMPOLINE_CARRY_OBJECT_PTR)
-
-// closure trampoline carray the object pointer, and fetch required members at the runtime assembly code.
-// #include "TrampolineBridge/ClosureTrampolineBridge/AssemblyClosureTrampoline.h"
-// #define OFFSETOF(TYPE, ELEMENT) ((size_t)&(((TYPE *)0)->ELEMENT))
-#define OFFSETOF_ClourseTrampolineEntry_carry_data 4
-#define OFFSETOF_ClourseTrampolineEntry_carry_handler 0
-.globl cdecl(closure_trampoline_template)
-cdecl(closure_trampoline_template):
-    ldr r12, ClourseTrampolineEntryPtr
-    ldr pc, [r12, #0]
-ClourseTrampolineEntryPtr:
-    .long 0
-
-#else
-
-; closure trampoline just carray the required members from the object.
-.globl cdecl(closure_trampoline_template)
-cdecl(closure_trampoline_template):
-    ldr r12, =carry_data
-    ldr pc, =carry_handler
-carry_data:
-    .long 0
-carry_handler:
-    .long 0
-#endif
-
-#endif
\ No newline at end of file
diff --git a/loader/dobby/source/TrampolineBridge/ClosureTrampolineBridge/arm/helper-arm.cc b/loader/dobby/source/TrampolineBridge/ClosureTrampolineBridge/arm/helper-arm.cc
deleted file mode 100644
index 1adb0519..00000000
--- a/loader/dobby/source/TrampolineBridge/ClosureTrampolineBridge/arm/helper-arm.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-#include "platform_macro.h"
-#if defined(TARGET_ARCH_ARM)
-
-#include "dobby_internal.h"
-
-void set_routing_bridge_next_hop(RegisterContext *ctx, void *address) {
-  *reinterpret_cast<void **>(&ctx->general.regs.r12) = address;
-}
-
-void get_routing_bridge_next_hop(RegisterContext *ctx, void *address) {
-}
-
-#endif
\ No newline at end of file
diff --git a/loader/dobby/source/TrampolineBridge/ClosureTrampolineBridge/arm64/ARM64AssemblyClosureTrampoline.cc b/loader/dobby/source/TrampolineBridge/ClosureTrampolineBridge/arm64/ARM64AssemblyClosureTrampoline.cc
deleted file mode 100644
index 0ab57ec5..00000000
--- a/loader/dobby/source/TrampolineBridge/ClosureTrampolineBridge/arm64/ARM64AssemblyClosureTrampoline.cc
+++ /dev/null
@@ -1,63 +0,0 @@
-#include "platform_macro.h"
-#if defined(TARGET_ARCH_ARM64)
-
-#include "dobby_internal.h"
-
-#include "core/modules/assembler/assembler-arm64.h"
-
-#include "TrampolineBridge/ClosureTrampolineBridge/AssemblyClosureTrampoline.h"
-
-using namespace zz;
-using namespace zz::arm64;
-
-// // tips
-// _ ldr(TMP_REG_1, OFFSETOF(ClosureTrampolineEntry, carry_data));
-// _ ldr(TMP_REG_0, OFFSETOF(ClosureTrampolineEntry, carry_handler));
-
-// use assembler and codegen modules instead of template_code
-ClosureTrampolineEntry *ClosureTrampoline::CreateClosureTrampoline(void *carry_data, void *carry_handler) {
-  ClosureTrampolineEntry *entry = nullptr;
-  entry = new ClosureTrampolineEntry;
-
-#define _ turbo_assembler_.
-  TurboAssembler turbo_assembler_(0);
-
-  PseudoLabel entry_label;
-  PseudoLabel forward_bridge_label;
-
-  // prologue: alloc stack, store lr
-  _ sub(SP, SP, 2 * 8);
-  _ str(x30, MemOperand(SP, 8));
-
-  // store data at stack
-  _ Ldr(TMP_REG_0, &entry_label);
-  _ str(TMP_REG_0, MemOperand(SP, 0));
-
-  _ Ldr(TMP_REG_0, &forward_bridge_label);
-  _ blr(TMP_REG_0);
-
-  // epilogue: release stack(won't restore lr)
-  _ ldr(x30, MemOperand(SP, 8));
-  _ add(SP, SP, 2 * 8);
-
-  // branch to next hop
-  _ br(TMP_REG_0);
-
-  _ PseudoBind(&entry_label);
-  _ EmitInt64((uint64_t)entry);
-  _ PseudoBind(&forward_bridge_label);
-  _ EmitInt64((uint64_t)get_closure_bridge());
-
-  AssemblyCodeChunk *code = nullptr;
-  code = AssemblyCodeBuilder::FinalizeFromTurboAssembler(reinterpret_cast<AssemblerBase *>(&turbo_assembler_));
-
-  entry->address = (void *)code->raw_instruction_start();
-  entry->size = code->raw_instruction_size();
-  entry->carry_data = carry_data;
-  entry->carry_handler = carry_handler;
-
-  delete code;
-  return entry;
-}
-
-#endif
diff --git a/loader/dobby/source/TrampolineBridge/ClosureTrampolineBridge/arm64/closure-bridge-arm64.cc b/loader/dobby/source/TrampolineBridge/ClosureTrampolineBridge/arm64/closure-bridge-arm64.cc
deleted file mode 100644
index d86aa2f1..00000000
--- a/loader/dobby/source/TrampolineBridge/ClosureTrampolineBridge/arm64/closure-bridge-arm64.cc
+++ /dev/null
@@ -1,159 +0,0 @@
-#include "platform_macro.h"
-#if defined(TARGET_ARCH_ARM64)
-
-#include "dobby_internal.h"
-
-#include "core/modules/assembler/assembler.h"
-#include "core/modules/assembler/assembler-arm64.h"
-
-#include "TrampolineBridge/ClosureTrampolineBridge/common-bridge-handler.h"
-
-using namespace zz;
-using namespace zz::arm64;
-
-static void *closure_bridge = NULL;
-
-void *get_closure_bridge() {
-  // if already initialized, just return.
-  if (closure_bridge)
-    return closure_bridge;
-
-// check if enable the inline-assembly closure_bridge_template
-#if ENABLE_CLOSURE_BRIDGE_TEMPLATE
-  extern void closure_bridge_tempate();
-  closure_bridge = closure_bridge_template;
-// otherwise, use the Assembler build the closure_bridge
-#else
-#define _ turbo_assembler_.
-#define MEM(reg, offset) MemOperand(reg, offset)
-#define MEM_EXT(reg, offset, addrmode) MemOperand(reg, offset, addrmode)
-  TurboAssembler turbo_assembler_(0);
-
-#if defined(FULL_FLOATING_POINT_REGISTER_PACK)
-
-  _ sub(SP, SP, 24 * 16);
-  _ stp(Q(30), Q(31), MEM(SP, 22 * 16));
-  _ stp(Q(28), Q(29), MEM(SP, 20 * 16));
-  _ stp(Q(26), Q(27), MEM(SP, 18 * 16));
-  _ stp(Q(24), Q(25), MEM(SP, 16 * 16));
-  _ stp(Q(22), Q(23), MEM(SP, 14 * 16));
-  _ stp(Q(20), Q(21), MEM(SP, 12 * 16));
-  _ stp(Q(18), Q(19), MEM(SP, 10 * 16));
-  _ stp(Q(16), Q(17), MEM(SP, 8 * 16));
-  _ stp(Q(14), Q(15), MEM(SP, 6 * 16));
-  _ stp(Q(12), Q(13), MEM(SP, 4 * 16));
-  _ stp(Q(10), Q(11), MEM(SP, 2 * 16));
-  _ stp(Q(8), Q(9), MEM(SP, 0 * 16));
-
-#endif
-
-  // save {q0-q7}
-  _ sub(SP, SP, 8 * 16);
-  _ stp(Q(6), Q(7), MEM(SP, 6 * 16));
-  _ stp(Q(4), Q(5), MEM(SP, 4 * 16));
-  _ stp(Q(2), Q(3), MEM(SP, 2 * 16));
-  _ stp(Q(0), Q(1), MEM(SP, 0 * 16));
-
-  // save {x1-x30}
-  _ sub(SP, SP, 30 * 8);
-  _ stp(X(29), X(30), MEM(SP, 28 * 8));
-  _ stp(X(27), X(28), MEM(SP, 26 * 8));
-  _ stp(X(25), X(26), MEM(SP, 24 * 8));
-  _ stp(X(23), X(24), MEM(SP, 22 * 8));
-  _ stp(X(21), X(22), MEM(SP, 20 * 8));
-  _ stp(X(19), X(20), MEM(SP, 18 * 8));
-  _ stp(X(17), X(18), MEM(SP, 16 * 8));
-  _ stp(X(15), X(16), MEM(SP, 14 * 8));
-  _ stp(X(13), X(14), MEM(SP, 12 * 8));
-  _ stp(X(11), X(12), MEM(SP, 10 * 8));
-  _ stp(X(9), X(10), MEM(SP, 8 * 8));
-  _ stp(X(7), X(8), MEM(SP, 6 * 8));
-  _ stp(X(5), X(6), MEM(SP, 4 * 8));
-  _ stp(X(3), X(4), MEM(SP, 2 * 8));
-  _ stp(X(1), X(2), MEM(SP, 0 * 8));
-
-  // save {x0}
-  _ sub(SP, SP, 2 * 8);
-  _ str(x0, MEM(SP, 8));
-
-  // calculate original sp
-  _ add(TMP_REG_0, SP, 2 * 8);                          // closure trampoline reserved
-  _ add(TMP_REG_0, TMP_REG_0, 2 * 8 + 30 * 8 + 8 * 16); // x0, x1-x30, q0-q7 reserved
-#if defined(FULL_FLOATING_POINT_REGISTER_PACK)
-  _ add(TMP_REG_0, TMP_REG_0, 24 * 16);                 // q8-q31 reserved
-#endif
-
-  // alloc stack, store original sp
-  _ sub(SP, SP, 2 * 8);
-  _ str(TMP_REG_0, MEM(SP, 8));
-
-#if defined(FULL_FLOATING_POINT_REGISTER_PACK)
-#define REGISTER_CONTEXT_SIZE (sizeof(RegisterContext))
-#else
-#define REGISTER_CONTEXT_SIZE (sizeof(RegisterContext) - 24 * 16)
-#endif
-  // create function arm64 call convention
-  _ mov(x0, SP); // arg1: register context
-  // load package(closure trampoline reserved)
-  _ ldr(x1, MEM(SP, REGISTER_CONTEXT_SIZE + 0)); // arg2: closure trampoline package
-  _ CallFunction(ExternalReference((void *)intercept_routing_common_bridge_handler));
-
-  // restore sp placeholder stack
-  _ add(SP, SP, 2 * 8);
-
-  // restore x0
-  _ ldr(X(0), MEM(SP, 8));
-  _ add(SP, SP, 2 * 8);
-
-  // restore {x1-x30}
-  _ ldp(X(1), X(2), MEM_EXT(SP, 16, PostIndex));
-  _ ldp(X(3), X(4), MEM_EXT(SP, 16, PostIndex));
-  _ ldp(X(5), X(6), MEM_EXT(SP, 16, PostIndex));
-  _ ldp(X(7), X(8), MEM_EXT(SP, 16, PostIndex));
-  _ ldp(X(9), X(10), MEM_EXT(SP, 16, PostIndex));
-  _ ldp(X(11), X(12), MEM_EXT(SP, 16, PostIndex));
-  _ ldp(X(13), X(14), MEM_EXT(SP, 16, PostIndex));
-  _ ldp(X(15), X(16), MEM_EXT(SP, 16, PostIndex));
-  _ ldp(X(17), X(18), MEM_EXT(SP, 16, PostIndex));
-  _ ldp(X(19), X(20), MEM_EXT(SP, 16, PostIndex));
-  _ ldp(X(21), X(22), MEM_EXT(SP, 16, PostIndex));
-  _ ldp(X(23), X(24), MEM_EXT(SP, 16, PostIndex));
-  _ ldp(X(25), X(26), MEM_EXT(SP, 16, PostIndex));
-  _ ldp(X(27), X(28), MEM_EXT(SP, 16, PostIndex));
-  _ ldp(X(29), X(30), MEM_EXT(SP, 16, PostIndex));
-
-  // restore {q0-q7}
-  _ ldp(Q(0), Q(1), MEM_EXT(SP, 32, PostIndex));
-  _ ldp(Q(2), Q(3), MEM_EXT(SP, 32, PostIndex));
-  _ ldp(Q(4), Q(5), MEM_EXT(SP, 32, PostIndex));
-  _ ldp(Q(6), Q(7), MEM_EXT(SP, 32, PostIndex));
-
-#if defined(FULL_FLOATING_POINT_REGISTER_PACK)
-  _ ldp(Q(8), Q(9), MEM_EXT(SP, 32, PostIndex));
-  _ ldp(Q(10), Q(11), MEM_EXT(SP, 32, PostIndex));
-  _ ldp(Q(12), Q(13), MEM_EXT(SP, 32, PostIndex));
-  _ ldp(Q(14), Q(15), MEM_EXT(SP, 32, PostIndex));
-  _ ldp(Q(16), Q(17), MEM_EXT(SP, 32, PostIndex));
-  _ ldp(Q(18), Q(19), MEM_EXT(SP, 32, PostIndex));
-  _ ldp(Q(20), Q(21), MEM_EXT(SP, 32, PostIndex));
-  _ ldp(Q(22), Q(23), MEM_EXT(SP, 32, PostIndex));
-  _ ldp(Q(24), Q(25), MEM_EXT(SP, 32, PostIndex));
-  _ ldp(Q(26), Q(27), MEM_EXT(SP, 32, PostIndex));
-  _ ldp(Q(28), Q(29), MEM_EXT(SP, 32, PostIndex));
-  _ ldp(Q(30), Q(31), MEM_EXT(SP, 32, PostIndex));
-#endif
-
-  // _ brk(0); // for debug
-
-  // return to closure trampoline, but TMP_REG_0, had been modified with next hop address
-  _ ret(); // AKA br x30
-
-  AssemblyCodeChunk *code = AssemblyCodeBuilder::FinalizeFromTurboAssembler(&turbo_assembler_);
-  closure_bridge = (void *)code->raw_instruction_start();
-
-  DLOG(0, "[closure bridge] Build the closure bridge at %p", closure_bridge);
-#endif
-  return (void *)closure_bridge;
-}
-
-#endif
diff --git a/loader/dobby/source/TrampolineBridge/ClosureTrampolineBridge/arm64/dummy/closure-bridge-template-arm64.c b/loader/dobby/source/TrampolineBridge/ClosureTrampolineBridge/arm64/dummy/closure-bridge-template-arm64.c
deleted file mode 100644
index fdc08931..00000000
--- a/loader/dobby/source/TrampolineBridge/ClosureTrampolineBridge/arm64/dummy/closure-bridge-template-arm64.c
+++ /dev/null
@@ -1,103 +0,0 @@
-#if defined(ENABLE_CLOSURE_BRIDGE_TEMPLATE)
-
-#if defined(__WIN32__) || defined(__APPLE__)
-#define xcdecl(s) "_" s
-#else
-#define xcdecl(s) s
-#endif
-
-#define xASM(x) __asm(x)
-
-__attribute__((naked)) void closure_bridge_template() {
-  // DO NOT USE prologue
-  // x29 == fp, x30 == lr
-  // xASM("stp x29, x30, [sp, #-16]!");
-  // xASM("mov x29, sp");
-
-  // save {q0-q7}
-  xASM("sub sp, sp, #(8*16)");
-  xASM("stp q6, q7, [sp, #(6*16)]");
-  xASM("stp q4, q5, [sp, #(4*16)]");
-  xASM("stp q2, q3, [sp, #(2*16)]");
-  xASM("stp q0, q1, [sp, #(0*16)]");
-
-  // save {x1-x30}
-  xASM("sub sp, sp, #(30*8)");
-  // stp fp, lr, [sp, #(28*8)]");
-  xASM("stp x29, x30, [sp, #(28*8)]");
-  xASM("stp x27, x28, [sp, #(26*8)]");
-  xASM("stp x25, x26, [sp, #(24*8)]");
-  xASM("stp x23, x24, [sp, #(22*8)]");
-  xASM("stp x21, x22, [sp, #(20*8)]");
-  xASM("stp x19, x20, [sp, #(18*8)]");
-  xASM("stp x17, x18, [sp, #(16*8)]");
-  xASM("stp x15, x16, [sp, #(14*8)]");
-  xASM("stp x13, x14, [sp, #(12*8)]");
-  xASM("stp x11, x12, [sp, #(10*8)]");
-  xASM("stp x9, x10, [sp, #(8*8)]");
-  xASM("stp x7, x8, [sp, #(6*8)]");
-  xASM("stp x5, x6, [sp, #(4*8)]");
-  xASM("stp x3, x4, [sp, #(2*8)]");
-  xASM("stp x1, x2, [sp, #(0*8)]");
-
-#if 1
-  // save {x0}
-  xASM("sub sp, sp, #(2*8)");
-  xASM("str x0, [sp, #8]");
-#else
-  // save {x0, sp}
-  // save x0 and reserve sp, but this is trick
-  xASM("sub sp, sp, #(2*8)");
-  xASM("str x0, [sp, #8]");
-  // save origin sp
-  xASM("add x1, sp, #0x190");
-  xASM("str x1, [sp, #0]");
-#endif
-
-  // ======= Jump to UnifiedInterface Bridge Handle =======
-
-  // prepare args
-  // @x0: data_address
-  // @x1: RegisterContext stack address
-  xASM("mov x0, sp");
-  xASM("mov x1, x14");
-  xASM("bl " xcdecl("intercept_routing_common_bridge_handler"));
-
-  // ======= RegisterContext Restore =======
-  // restore x0
-  xASM("ldr x0, [sp, #8]");
-  xASM("add sp, sp, #(2*8)");
-
-  // restore {x1-x30}
-  xASM("ldp x1, x2, [sp], #16");
-  xASM("ldp x3, x4, [sp], #16");
-  xASM("ldp x5, x6, [sp], #16");
-  xASM("ldp x7, x8, [sp], #16");
-  xASM("ldp x9, x10, [sp], #16");
-  xASM("ldp x11, x12, [sp], #16");
-  xASM("ldp x13, x14, [sp], #16");
-  xASM("ldp x15, x16, [sp], #16");
-  xASM("ldp x17, x18, [sp], #16");
-  xASM("ldp x19, x20, [sp], #16");
-  xASM("ldp x21, x22, [sp], #16");
-  xASM("ldp x23, x24, [sp], #16");
-  xASM("ldp x25, x26, [sp], #16");
-  xASM("ldp x27, x28, [sp], #16");
-  // ldp fp, lr, [sp], #16");
-  xASM("ldp x29, x30, [sp], #16");
-
-  // restore {q0-q7}
-  xASM("ldp q0, q1, [sp], #32");
-  xASM("ldp q2, q3, [sp], #32");
-  xASM("ldp q4, q5, [sp], #32");
-  xASM("ldp q6, q7, [sp], #32");
-
-  // DO NOT USE epilog
-  // x29 == fp, x30 == lr
-  // xASM("mov sp, x29");
-  // xASM("ldp x29, x30, [sp], #16");
-
-  xASM("br x15");
-};
-
-#endif
\ No newline at end of file
diff --git a/loader/dobby/source/TrampolineBridge/ClosureTrampolineBridge/arm64/dummy/closure-trampoline-template-arm64.S b/loader/dobby/source/TrampolineBridge/ClosureTrampolineBridge/arm64/dummy/closure-trampoline-template-arm64.S
deleted file mode 100644
index e80055c0..00000000
--- a/loader/dobby/source/TrampolineBridge/ClosureTrampolineBridge/arm64/dummy/closure-trampoline-template-arm64.S
+++ /dev/null
@@ -1,47 +0,0 @@
-// .section	__TEXT,__text,regular,pure_instructions
-
-#if defined(ENABLE_CLOSURE_BRIDGE_TEMPLATE)
-
-#if defined(__WIN32__) || defined(__APPLE__)
-#define cdecl(s) _##s
-#else
-#define cdecl(s) s
-#endif
-
-.align 4
-
-#if !defined(ENABLE_CLOSURE_TRAMPOLINE_CARRY_OBJECT_PTR)
-
-// closure trampoline carray the object pointer, and fetch required members at the runtime assembly code.
-// #include "TrampolineBridge/ClosureTrampolineBridge/AssemblyClosureTrampoline.h"
-// #define OFFSETOF(TYPE, ELEMENT) ((size_t)&(((TYPE *)0)->ELEMENT))
-#define OFFSETOF_ClourseTrampolineEntry_carry_data 8
-#define OFFSETOF_ClourseTrampolineEntry_carry_handler 0
-.globl cdecl(closure_trampoline_template)
-cdecl(closure_trampoline_template):
-    ldr x17, ClourseTrampolineEntryPtr
-    ldr x16, OFFSETOF_ClourseTrampolineEntry_carry_data
-    ldr x17, OFFSETOF_ClourseTrampolineEntry_carry_handler
-    br x17
-ClourseTrampolineEntryPtr:
-    .long 0
-    .long 0
-
-#else
-
-; closure trampoline just carray the required members from the object.
-.globl cdecl(closure_trampoline_template)
-cdecl(closure_trampoline_template):
-    ldr x16, =carry_data
-    ldr x17, =carry_handler
-    br x17
-carry_data:
-    .long 0
-    .long 0
-carry_handler:
-    .long 0
-    .long 0
-
-#endif
-
-#endif
\ No newline at end of file
diff --git a/loader/dobby/source/TrampolineBridge/ClosureTrampolineBridge/arm64/dummy/dynamic-closure-trampoline-template-arm64.S b/loader/dobby/source/TrampolineBridge/ClosureTrampolineBridge/arm64/dummy/dynamic-closure-trampoline-template-arm64.S
deleted file mode 100644
index 593b57b3..00000000
--- a/loader/dobby/source/TrampolineBridge/ClosureTrampolineBridge/arm64/dummy/dynamic-closure-trampoline-template-arm64.S
+++ /dev/null
@@ -1,31 +0,0 @@
-// .section	__TEXT,__text,regular,pure_instructions
-
-// For iOS, we can't allocate executable memory, but we can use `remap` doing some trick.
-// For details, please refer `libffi`
-
-#if defined(ENABLE_CLOSURE_BRIDGE_TEMPLATE)
-
-#if defined(__WIN32__) || defined(__APPLE__)
-    #define cdecl(s) _##s
-#else
-    #define cdecl(s) s
-#endif
-
-#define PAGE_MAX_SIZE 4096
-#define PAGE_MAX_SHIFT 14
-
-.align PAGE_MAX_SHIFT
-.globl cdecl(dynamic_closure_trampoline_table_page)
-cdecl(dynamic_closure_trampoline_table_page):
-.rept  (PAGE_MAX_SIZE - 4 * 4) / 8 // sub dynamic_closure_trampoline_forward size
-adr x16, #0
-b cdecl(dynamic_closure_trampoline_forward)
-.endr
-
-cdecl(dynamic_closure_trampoline_forward):
-sub x16, x16, #0x4000 // [DynamicClosureTrampoline **]
-ldr x16, [x16, #0] // [DynamicClosureTrampoline *]
-ldr x17, [x16, #0] // trampolineTo 
-br x17
-
-#endif
\ No newline at end of file
diff --git a/loader/dobby/source/TrampolineBridge/ClosureTrampolineBridge/arm64/helper-arm64.cc b/loader/dobby/source/TrampolineBridge/ClosureTrampolineBridge/arm64/helper-arm64.cc
deleted file mode 100644
index 5ff5be48..00000000
--- a/loader/dobby/source/TrampolineBridge/ClosureTrampolineBridge/arm64/helper-arm64.cc
+++ /dev/null
@@ -1,17 +0,0 @@
-#include "platform_macro.h"
-#if defined(TARGET_ARCH_ARM64)
-
-#include "core/modules/assembler/assembler-arm64.h"
-
-#include "dobby_internal.h"
-
-using namespace zz::arm64;
-
-void set_routing_bridge_next_hop(RegisterContext *ctx, void *address) {
-  *reinterpret_cast<void **>(&ctx->general.x[TMP_REG_0.code()]) = address;
-}
-
-void get_routing_bridge_next_hop(RegisterContext *ctx, void *address) {
-}
-
-#endif
diff --git a/loader/dobby/source/TrampolineBridge/ClosureTrampolineBridge/common-bridge-handler.cc b/loader/dobby/source/TrampolineBridge/ClosureTrampolineBridge/common-bridge-handler.cc
deleted file mode 100644
index f50dc8d5..00000000
--- a/loader/dobby/source/TrampolineBridge/ClosureTrampolineBridge/common-bridge-handler.cc
+++ /dev/null
@@ -1,22 +0,0 @@
-
-#include "logging/logging.h"
-
-#include "TrampolineBridge/ClosureTrampolineBridge/common-bridge-handler.h"
-
-PUBLIC void intercept_routing_common_bridge_handler(RegisterContext *ctx, ClosureTrampolineEntry *entry) {
-  DLOG(0, "Catch common bridge handler, carry data: %p, carry handler: %p", (HookEntry *)entry->carry_data,
-       entry->carry_handler);
-
-  typedef void (*intercept_routing_handler_t)(RegisterContext * ctx, ClosureTrampolineEntry * entry);
-  intercept_routing_handler_t routing_handler = (intercept_routing_handler_t)entry->carry_handler;
-
-#if __APPLE__
-#if __has_feature(ptrauth_calls)
-  routing_handler =
-      (typeof(routing_handler))__builtin_ptrauth_sign_unauthenticated((void *)routing_handler, ptrauth_key_asia, 0);
-#endif
-#endif
-
-  routing_handler(ctx, entry);
-  return;
-}
diff --git a/loader/dobby/source/TrampolineBridge/ClosureTrampolineBridge/common-bridge-handler.h b/loader/dobby/source/TrampolineBridge/ClosureTrampolineBridge/common-bridge-handler.h
deleted file mode 100644
index d371e314..00000000
--- a/loader/dobby/source/TrampolineBridge/ClosureTrampolineBridge/common-bridge-handler.h
+++ /dev/null
@@ -1,17 +0,0 @@
-#ifndef CLOSURE_TRAMPOLINE_COMMON_HANDLER_H
-#define CLOSURE_TRAMPOLINE_COMMON_HANDLER_H
-
-#include "dobby_internal.h"
-
-#include "Interceptor.h"
-#include "TrampolineBridge/ClosureTrampolineBridge/AssemblyClosureTrampoline.h"
-
-extern "C" {
-void intercept_routing_common_bridge_handler(RegisterContext *ctx, ClosureTrampolineEntry *entry);
-}
-
-void get_routing_bridge_next_hop(RegisterContext *ctx, void *address);
-
-void set_routing_bridge_next_hop(RegisterContext *ctx, void *address);
-
-#endif
\ No newline at end of file
diff --git a/loader/dobby/source/TrampolineBridge/ClosureTrampolineBridge/x64/X64AssemblyClosureTrampoline.cc b/loader/dobby/source/TrampolineBridge/ClosureTrampolineBridge/x64/X64AssemblyClosureTrampoline.cc
deleted file mode 100644
index b33fc7be..00000000
--- a/loader/dobby/source/TrampolineBridge/ClosureTrampolineBridge/x64/X64AssemblyClosureTrampoline.cc
+++ /dev/null
@@ -1,44 +0,0 @@
-#include "platform_macro.h"
-#if defined(TARGET_ARCH_X64)
-
-#include "dobby_internal.h"
-
-#include "core/modules/assembler/assembler-x64.h"
-
-#include "TrampolineBridge/ClosureTrampolineBridge/AssemblyClosureTrampoline.h"
-
-using namespace zz;
-using namespace zz::x64;
-
-ClosureTrampolineEntry *ClosureTrampoline::CreateClosureTrampoline(void *carry_data, void *carry_handler) {
-  ClosureTrampolineEntry *entry = nullptr;
-  entry = new ClosureTrampolineEntry;
-
-  AssemblyCodeChunk *cchunk = MemoryArena::AllocateCodeChunk(32);
-  if (cchunk == nullptr) {
-    return NULL;
-  }
-#define _ turbo_assembler_.
-#define __ turbo_assembler_.GetCodeBuffer()->
-  TurboAssembler turbo_assembler_(0);
-
-  char *push_rip_6 = (char *)"\xff\x35\x06\x00\x00\x00";
-  char *jmp_rip_8 = (char *)"\xff\x25\x08\x00\x00\x00";
-
-  __ EmitBuffer(push_rip_6, 6);
-  __ EmitBuffer(jmp_rip_8, 6);
-  __ Emit64((uint64_t)entry);
-  __ Emit64((uint64_t)get_closure_bridge());
-
-  entry->address = (void *)cchunk->raw_instruction_start();
-  entry->size = cchunk->raw_instruction_size();
-  entry->carry_data = carry_data;
-  entry->carry_handler = carry_handler;
-
-  CodeBufferBase *buffer = reinterpret_cast<CodeBufferBase *>(turbo_assembler_.GetCodeBuffer());
-  CodePatch(cchunk->address, (uint8_t *)buffer->getRawBuffer(), buffer->getSize());
-
-  return entry;
-}
-
-#endif
\ No newline at end of file
diff --git a/loader/dobby/source/TrampolineBridge/ClosureTrampolineBridge/x64/closure-bridge-x64.cc b/loader/dobby/source/TrampolineBridge/ClosureTrampolineBridge/x64/closure-bridge-x64.cc
deleted file mode 100644
index 26ef4ad1..00000000
--- a/loader/dobby/source/TrampolineBridge/ClosureTrampolineBridge/x64/closure-bridge-x64.cc
+++ /dev/null
@@ -1,141 +0,0 @@
-#include "platform_macro.h"
-#if defined(TARGET_ARCH_X64)
-
-#include "dobby_internal.h"
-
-#include "core/modules/assembler/assembler-x64.h"
-
-#include "TrampolineBridge/ClosureTrampolineBridge/common-bridge-handler.h"
-
-using namespace zz;
-using namespace zz::x64;
-
-static void *closure_bridge = NULL;
-
-void *get_closure_bridge() {
-  // if already initialized, just return.
-  if (closure_bridge)
-    return closure_bridge;
-
-// Check if enable the inline-assembly closure_bridge_template
-#if ENABLE_CLOSURE_BRIDGE_TEMPLATE
-
-  extern void closure_bridge_tempate();
-  closure_bridge = closure_bridge_template;
-
-#else
-
-// otherwise, use the Assembler build the closure_bridge
-#define _ turbo_assembler_.
-#define __ turbo_assembler_.GetCodeBuffer()->
-
-  char *pushfq = (char *)"\x9c";
-  char *popfq = (char *)"\x9d";
-
-  TurboAssembler turbo_assembler_(0);
-
-  // save flags register
-  __ EmitBuffer(pushfq, 1);
-  // align rsp 16-byte
-  _ sub(rsp, Immediate(8, 32));
-
-  // general register
-  _ sub(rsp, Immediate(16 * 8, 32));
-  _ mov(Address(rsp, 8 * 0), rax);
-  _ mov(Address(rsp, 8 * 1), rbx);
-  _ mov(Address(rsp, 8 * 2), rcx);
-  _ mov(Address(rsp, 8 * 3), rdx);
-  _ mov(Address(rsp, 8 * 4), rbp);
-  _ mov(Address(rsp, 8 * 5), rsp);
-  _ mov(Address(rsp, 8 * 6), rdi);
-  _ mov(Address(rsp, 8 * 7), rsi);
-  _ mov(Address(rsp, 8 * 8), r8);
-  _ mov(Address(rsp, 8 * 9), r9);
-  _ mov(Address(rsp, 8 * 10), r10);
-  _ mov(Address(rsp, 8 * 11), r11);
-  _ mov(Address(rsp, 8 * 12), r12);
-  _ mov(Address(rsp, 8 * 13), r13);
-  _ mov(Address(rsp, 8 * 14), r14);
-  _ mov(Address(rsp, 8 * 15), r15);
-
-  // save origin sp
-  _ mov(rax, rsp);
-  _ add(rax, Immediate(8 + 8 + 8 + 16 * 8, 32));
-  _ sub(rsp, Immediate(2 * 8, 32));
-  _ mov(Address(rsp, 8), rax);
-
-  // ======= Jump to UnifiedInterface Bridge Handle =======
-
-  // prepare args
-  // @rdi: data_address
-  // @rsi: RegisterContext stack address
-  _ mov(rdi, rsp);
-  _ mov(rsi, Address(rsp, 8 + 8 + 16 * 8 + 2 * 8));
-
-  // [!!!] As we can't detect the sp is aligned or not, check if need stack align
-  {
-    //  mov rax, rsp
-    __ EmitBuffer((void *)"\x48\x89\xE0", 3);
-    //  and rax, 0xF
-    __ EmitBuffer((void *)"\x48\x83\xE0\x0F", 4);
-    //  cmp rax, 0x0
-    __ EmitBuffer((void *)"\x48\x83\xF8\x00", 4);
-    // jnz [stack_align_call_bridge]
-    __ EmitBuffer((void *)"\x75\x15", 2);
-  }
-
-  // LABEL: call_bridge
-  _ CallFunction(ExternalReference((void *)intercept_routing_common_bridge_handler));
-
-  // jmp [restore_stack_register]
-  __ EmitBuffer((void *)"\xE9\x12\x00\x00\x00", 5);
-
-  // LABEL: stack_align_call_bridge
-  // push rax
-  __ EmitBuffer((void *)"\x50", 1);
-  _ CallFunction(ExternalReference((void *)intercept_routing_common_bridge_handler));
-  // pop rax
-  __ EmitBuffer((void *)"\x58", 1);
-
-  // ======= RegisterContext Restore =======
-
-  // restore sp placeholder stack
-  _ add(rsp, Immediate(2 * 8, 32));
-
-  // general register
-  _ pop(rax);
-  _ pop(rbx);
-  _ pop(rcx);
-  _ pop(rdx);
-  _ pop(rbp);
-  _ add(rsp, Immediate(8, 32)); // => pop rsp
-  _ pop(rdi);
-  _ pop(rsi);
-  _ pop(r8);
-  _ pop(r9);
-  _ pop(r10);
-  _ pop(r11);
-  _ pop(r12);
-  _ pop(r13);
-  _ pop(r14);
-  _ pop(r15);
-
-  // align rsp 16-byte
-  _ add(rsp, Immediate(8, 32));
-  // restore flags register
-  __ EmitBuffer(popfq, 1);
-
-  // trick: use the 'carry_data' stack(remain at closure trampoline) placeholder, as the return address
-  _ ret();
-
-  _ RelocBind();
-
-  AssemblyCodeChunk *code = AssemblyCodeBuilder::FinalizeFromTurboAssembler(&turbo_assembler_);
-  closure_bridge = (void *)code->raw_instruction_start();
-
-  DLOG(0, "[closure bridge] Build the closure bridge at %p", closure_bridge);
-#endif
-  return (void *)closure_bridge;
-}
-
-#endif
\ No newline at end of file
diff --git a/loader/dobby/source/TrampolineBridge/ClosureTrampolineBridge/x64/dummy/closure-bridge-template-x64.c b/loader/dobby/source/TrampolineBridge/ClosureTrampolineBridge/x64/dummy/closure-bridge-template-x64.c
deleted file mode 100644
index ebb38d2d..00000000
--- a/loader/dobby/source/TrampolineBridge/ClosureTrampolineBridge/x64/dummy/closure-bridge-template-x64.c
+++ /dev/null
@@ -1,70 +0,0 @@
-#if defined(ENABLE_CLOSURE_BRIDGE_TEMPLATE)
-
-#if defined(__WIN32__) || defined(__APPLE__)
-#define xcdecl(s) "_" s
-#else
-#define xcdecl(s) s
-#endif
-
-#define xASM(x) __asm(x)
-
-__attribute__((naked)) void closure_bridge_template() {
-  // flags register
-  xASM("pushfq");
-
-  // general register
-  xASM("sub rsp, #(16*8)");
-  xASM("mov [rsp+16*0], rax");
-  xASM("mov [rsp+16*1], rbx");
-  xASM("mov [rsp+16*2], rcx");
-  xASM("mov [rsp+16*3], rdx");
-  xASM("mov [rsp+16*4], rbp");
-  xASM("mov [rsp+16*5], rsp");
-  xASM("mov [rsp+16*6], rdi");
-  xASM("mov [rsp+16*7], rsi");
-  xASM("mov [rsp+16*8], r8");
-  xASM("mov [rsp+16*9], r9");
-  xASM("mov [rsp+16*10], r10");
-  xASM("mov [rsp+16*11], r11");
-  xASM("mov [rsp+16*12], r12");
-  xASM("mov [rsp+16*13], r13");
-  xASM("mov [rsp+16*14], r14");
-  xASM("mov [rsp+16*15], r15");
-
-  // ======= Jump to UnifiedInterface Bridge Handle =======
-
-  // prepare args
-  // @rdi: data_address
-  // @rsi: RegisterContext stack address
-  xASM("mov rdi, rsp");
-  xASM("mov rsi, [rsp-16*8]");
-  xASM("call " xcdecl("intercept_routing_common_bridge_handler"));
-
-  // ======= RegisterContext Restore =======
-
-  // general register
-  xASM("pop r15");
-  xASM("pop r14");
-  xASM("pop r13");
-  xASM("pop r12");
-  xASM("pop r11");
-  xASM("pop r10");
-  xASM("pop r9");
-  xASM("pop r8");
-  xASM("pop rsi");
-  xASM("pop rdi");
-  xASM("pop rsp");
-  xASM("pop rbp");
-  xASM("pop rdx");
-  xASM("pop rcx");
-  xASM("pop rbx");
-  xASM("pop rax");
-
-  // flags register
-  xASM("popfq");
-
-  // trick: use the 'carry_data' placeholder, as the return address
-  xASM("ret");
-};
-
-#endif
\ No newline at end of file
diff --git a/loader/dobby/source/TrampolineBridge/ClosureTrampolineBridge/x64/dummy/closure-trampoline-template-x64.S b/loader/dobby/source/TrampolineBridge/ClosureTrampolineBridge/x64/dummy/closure-trampoline-template-x64.S
deleted file mode 100644
index b24b602a..00000000
--- a/loader/dobby/source/TrampolineBridge/ClosureTrampolineBridge/x64/dummy/closure-trampoline-template-x64.S
+++ /dev/null
@@ -1,23 +0,0 @@
-#if defined(ENABLE_CLOSURE_BRIDGE_TEMPLATE)
-
-#if defined(__WIN32__) || defined(__APPLE__)
-#define cdecl(s) _##s
-#else
-#define cdecl(s) s
-#endif
-
-.align 4
-
-; closure trampoline just carray the required members from the object.
-.globl cdecl(closure_trampoline_template)
-cdecl(closure_trampoline_template):
-    push [rip+6+6]
-    jmp [rip+6+8]
-carry_data:
-    .long 0
-    .long 0
-carry_handler:
-    .long 0
-    .long 0
-
-#endif
diff --git a/loader/dobby/source/TrampolineBridge/ClosureTrampolineBridge/x64/helper-x64.cc b/loader/dobby/source/TrampolineBridge/ClosureTrampolineBridge/x64/helper-x64.cc
deleted file mode 100644
index e0f3da9a..00000000
--- a/loader/dobby/source/TrampolineBridge/ClosureTrampolineBridge/x64/helper-x64.cc
+++ /dev/null
@@ -1,17 +0,0 @@
-#include "platform_macro.h"
-#if defined(TARGET_ARCH_X64)
-
-#include "dobby_internal.h"
-
-void set_routing_bridge_next_hop(RegisterContext *ctx, void *address) {
-  addr_t rsp = ctx->rsp;
-
-  // ClosureTrampolineEntry reserved stack
-  addr_t entry_placeholder_stack_addr = rsp - 8;
-  *(addr_t *)entry_placeholder_stack_addr = (addr_t)address;
-}
-
-void get_routing_bridge_next_hop(RegisterContext *ctx, void *address) {
-}
-
-#endif
\ No newline at end of file
diff --git a/loader/dobby/source/TrampolineBridge/ClosureTrampolineBridge/x86/X86AssemblyClosureTrampoline.cc b/loader/dobby/source/TrampolineBridge/ClosureTrampolineBridge/x86/X86AssemblyClosureTrampoline.cc
deleted file mode 100644
index b5c01352..00000000
--- a/loader/dobby/source/TrampolineBridge/ClosureTrampolineBridge/x86/X86AssemblyClosureTrampoline.cc
+++ /dev/null
@@ -1,43 +0,0 @@
-#include "platform_macro.h"
-#if defined(TARGET_ARCH_IA32)
-
-#include "dobby_internal.h"
-
-#include "core/modules/assembler/assembler-ia32.h"
-
-#include "TrampolineBridge/ClosureTrampolineBridge/AssemblyClosureTrampoline.h"
-
-using namespace zz;
-using namespace zz::x86;
-
-ClosureTrampolineEntry *ClosureTrampoline::CreateClosureTrampoline(void *carry_data, void *carry_handler) {
-  ClosureTrampolineEntry *entry = nullptr;
-  entry = new ClosureTrampolineEntry;
-
-  AssemblyCodeChunk *cchunk = MemoryArena::AllocateCodeChunk(32);
-  if (cchunk == nullptr) {
-    return NULL;
-  }
-
-#define _ turbo_assembler_.
-#define __ turbo_assembler_.GetCodeBuffer()->
-  TurboAssembler turbo_assembler_(cchunk->address);
-
-  int32_t offset = (int32_t)get_closure_bridge() - ((int32_t)cchunk->address + 18);
-
-  _ sub(esp, Immediate(4, 32));
-  _ mov(Address(esp, 4 * 0), Immediate((int32_t)entry, 32));
-  _ jmp(Immediate(offset, 32));
-
-  entry->address = (void *)cchunk->raw_instruction_start();
-  entry->size = cchunk->raw_instruction_size();
-  entry->carry_data = carry_data;
-  entry->carry_handler = carry_handler;
-
-  CodeBufferBase *buffer = reinterpret_cast<CodeBufferBase *>(turbo_assembler_.GetCodeBuffer());
-  CodePatch(cchunk->address, (uint8_t *)buffer->getRawBuffer(), buffer->getSize());
-
-  return entry;
-}
-
-#endif
\ No newline at end of file
diff --git a/loader/dobby/source/TrampolineBridge/ClosureTrampolineBridge/x86/closure-bridge-x86.cc b/loader/dobby/source/TrampolineBridge/ClosureTrampolineBridge/x86/closure-bridge-x86.cc
deleted file mode 100644
index b55edb2e..00000000
--- a/loader/dobby/source/TrampolineBridge/ClosureTrampolineBridge/x86/closure-bridge-x86.cc
+++ /dev/null
@@ -1,112 +0,0 @@
-#include "platform_macro.h"
-#if defined(TARGET_ARCH_IA32)
-
-#include "dobby_internal.h"
-
-#include "core/modules/assembler/assembler-ia32.h"
-
-#include "TrampolineBridge/ClosureTrampolineBridge/common-bridge-handler.h"
-
-using namespace zz;
-using namespace zz::x86;
-
-static void *closure_bridge = NULL;
-
-void *get_closure_bridge() {
-  // if already initialized, just return.
-  if (closure_bridge)
-    return closure_bridge;
-
-// Check if enable the inline-assembly closure_bridge_template
-#if ENABLE_CLOSURE_BRIDGE_TEMPLATE
-
-  extern void closure_bridge_tempate();
-  closure_bridge = closure_bridge_template;
-
-#else
-
-// otherwise, use the Assembler build the closure_bridge
-#define _ turbo_assembler_.
-#define __ turbo_assembler_.GetCodeBuffer()->
-
-  char *pushfd = (char *)"\x9c";
-  char *popfd = (char *)"\x9d";
-
-  TurboAssembler turbo_assembler_(0);
-
-  // general register
-  _ sub(esp, Immediate(8 * 4, 32));
-  _ mov(Address(esp, 4 * 0), eax);
-  _ mov(Address(esp, 4 * 1), ebx);
-  _ mov(Address(esp, 4 * 2), ecx);
-  _ mov(Address(esp, 4 * 3), edx);
-  _ mov(Address(esp, 4 * 4), ebp);
-  _ mov(Address(esp, 4 * 5), esp);
-  _ mov(Address(esp, 4 * 6), edi);
-  _ mov(Address(esp, 4 * 7), esi);
-
-  // save flags register
-  __ EmitBuffer(pushfd, 1);
-  _ pop(eax);
-  { // save to stack
-    _ sub(esp, Immediate(2 * 4, 32));
-    _ mov(Address(esp, 4), eax);
-  }
-
-  // save origin sp
-  _ mov(eax, esp);
-  _ add(eax, Immediate(8 * 4 + 2 * 4 + 4, 32));
-  { // save to stack
-    _ sub(esp, Immediate(2 * 4, 32));
-    _ mov(Address(esp, 4), eax);
-  }
-
-  // ======= Jump to UnifiedInterface Bridge Handle =======
-
-  // prepare args
-  _ sub(esp, Immediate(2 * 4, 32));
-  _ mov(eax, Address(esp, 8 * 4 + 2 * 4 + 2 * 4 + 2 * 4));
-  _ mov(Address(esp, 4), eax);
-  _ mov(eax, esp);
-  _ add(eax, Immediate(2 * 4, 32));
-  _ mov(Address(esp, 0), eax);
-
-  // LABEL: call_bridge
-  _ CallFunction(ExternalReference((void *)intercept_routing_common_bridge_handler));
-
-  // ======= RegisterContext Restore =======
-
-  // restore argument reserved stack
-  _ add(esp, Immediate(2 * 4, 32));
-
-  // restore sp placeholder stack
-  _ add(esp, Immediate(2 * 4, 32));
-
-  _ add(esp, Immediate(4, 32));
-  // restore flags register
-  __ EmitBuffer(popfd, 1);
-
-  // general register
-  _ pop(eax);
-  _ pop(ebx);
-  _ pop(ecx);
-  _ pop(edx);
-  _ pop(ebp);
-  _ add(esp, Immediate(4, 32)); // => pop rsp
-  _ pop(edi);
-  _ pop(esi);
-
-  // trick: use the 'carry_data' stack(remain at closure trampoline) placeholder, as the return address
-  _ ret();
-
-  _ RelocBind();
-
-  AssemblyCodeChunk *code = AssemblyCodeBuilder::FinalizeFromTurboAssembler(&turbo_assembler_);
-  closure_bridge = (void *)code->raw_instruction_start();
-
-  DLOG(0, "[closure bridge] Build the closure bridge at %p", closure_bridge);
-#endif
-  return (void *)closure_bridge;
-}
-
-#endif
\ No newline at end of file
diff --git a/loader/dobby/source/TrampolineBridge/ClosureTrampolineBridge/x86/helper-x86.cc b/loader/dobby/source/TrampolineBridge/ClosureTrampolineBridge/x86/helper-x86.cc
deleted file mode 100644
index 75f80fcf..00000000
--- a/loader/dobby/source/TrampolineBridge/ClosureTrampolineBridge/x86/helper-x86.cc
+++ /dev/null
@@ -1,16 +0,0 @@
-#include "platform_macro.h"
-#if defined(TARGET_ARCH_IA32)
-
-#include "dobby_internal.h"
-
-void set_routing_bridge_next_hop(RegisterContext *ctx, void *address) {
-  addr_t esp = ctx->esp;
-
-  addr_t entry_placeholder_stack_addr = esp - 4;
-  *(addr_t *)entry_placeholder_stack_addr = (addr_t)address;
-}
-
-void get_routing_bridge_next_hop(RegisterContext *ctx, void *address) {
-}
-
-#endif
\ No newline at end of file
diff --git a/loader/dobby/source/TrampolineBridge/Trampoline/Trampoline.h b/loader/dobby/source/TrampolineBridge/Trampoline/Trampoline.h
deleted file mode 100644
index 53f3779b..00000000
--- a/loader/dobby/source/TrampolineBridge/Trampoline/Trampoline.h
+++ /dev/null
@@ -1,5 +0,0 @@
-#pragma once
-
-#include "MemoryAllocator/AssemblyCodeBuilder.h"
-
-CodeBufferBase *GenerateNormalTrampolineBuffer(addr_t from, addr_t to);
\ No newline at end of file
diff --git a/loader/dobby/source/TrampolineBridge/Trampoline/arm/trampoline-arm.cc b/loader/dobby/source/TrampolineBridge/Trampoline/arm/trampoline-arm.cc
deleted file mode 100644
index 7dfca4db..00000000
--- a/loader/dobby/source/TrampolineBridge/Trampoline/arm/trampoline-arm.cc
+++ /dev/null
@@ -1,60 +0,0 @@
-#include "platform_macro.h"
-#if defined(TARGET_ARCH_ARM)
-
-#include "core/modules/assembler/assembler-arm.h"
-#include "core/modules/codegen/codegen-arm.h"
-
-#include "InstructionRelocation/arm/ARMInstructionRelocation.h"
-
-#include "MemoryAllocator/NearMemoryArena.h"
-#include "InterceptRouting/RoutingPlugin/RoutingPlugin.h"
-
-using namespace zz::arm;
-
-static CodeBufferBase *generate_arm_trampoline(addr32_t from, addr32_t to) {
-  TurboAssembler turbo_assembler_((void *)from);
-#define _ turbo_assembler_.
-
-  CodeGen codegen(&turbo_assembler_);
-  codegen.LiteralLdrBranch(to);
-
-  return turbo_assembler_.GetCodeBuffer()->Copy();
-}
-
-CodeBufferBase *generate_thumb_trampoline(addr32_t from, addr32_t to) {
-  ThumbTurboAssembler thumb_turbo_assembler_((void *)from);
-#undef _
-#define _ thumb_turbo_assembler_.
-
-  _ AlignThumbNop();
-  _ t2_ldr(pc, MemOperand(pc, 0));
-  _ EmitAddress(to);
-
-  return thumb_turbo_assembler_.GetCodeBuffer()->Copy();
-}
-
-CodeBufferBase *GenerateNormalTrampolineBuffer(addr_t from, addr_t to) {
-  enum ExecuteState { ARMExecuteState, ThumbExecuteState };
-
-  // set instruction running state
-  ExecuteState execute_state_;
-  execute_state_ = ARMExecuteState;
-  if ((addr_t)from % 2) {
-    execute_state_ = ThumbExecuteState;
-  }
-
-  if (execute_state_ == ARMExecuteState) {
-    return generate_arm_trampoline(from, to);
-  } else {
-    // Check if needed pc align, (relative pc instructions needed 4 align)
-    from = ALIGN(from, 2);
-    return generate_thumb_trampoline(from, to);
-  }
-  return NULL;
-}
-
-CodeBufferBase *GenerateNearTrampolineBuffer(InterceptRouting *routing, addr_t src, addr_t dst) {
-  return NULL;
-}
-
-#endif
\ No newline at end of file
diff --git a/loader/dobby/source/TrampolineBridge/Trampoline/arm64/trampoline-arm64.cc b/loader/dobby/source/TrampolineBridge/Trampoline/arm64/trampoline-arm64.cc
deleted file mode 100644
index 139ca400..00000000
--- a/loader/dobby/source/TrampolineBridge/Trampoline/arm64/trampoline-arm64.cc
+++ /dev/null
@@ -1,125 +0,0 @@
-#include "platform_macro.h"
-#if defined(TARGET_ARCH_ARM64)
-
-#include "dobby_internal.h"
-
-#include "core/modules/assembler/assembler-arm64.h"
-#include "core/modules/codegen/codegen-arm64.h"
-
-#include "InstructionRelocation/arm64/ARM64InstructionRelocation.h"
-
-#include "MemoryAllocator/NearMemoryArena.h"
-#include "InterceptRouting/RoutingPlugin/RoutingPlugin.h"
-
-using namespace zz::arm64;
-
-CodeBufferBase *GenerateNormalTrampolineBuffer(addr_t from, addr_t to) {
-  TurboAssembler turbo_assembler_((void *)from);
-#define _ turbo_assembler_.
-
-  uint64_t distance = llabs((int64_t)(from - to));
-  uint64_t adrp_range = ((uint64_t)1 << (2 + 19 + 12 - 1));
-  if (distance < adrp_range) {
-    // adrp, add, br
-    _ AdrpAdd(TMP_REG_0, from, to);
-    _ br(TMP_REG_0);
-    DLOG(0, "Trampoline use [Adrp, Add, Br] combine");
-  } else {
-    // ldr, br, branch-address
-    CodeGen codegen(&turbo_assembler_);
-    codegen.LiteralLdrBranch((uint64_t)to);
-    DLOG(0, "Trampoline use [Ldr, Br, Label] combine");
-  }
-
-  CodeBufferBase *result = NULL;
-  result = turbo_assembler_.GetCodeBuffer()->Copy();
-  return result;
-}
-
-#define ARM64_B_XXX_RANGE ((1 << 25) << 2) // signed
-
-// If BranchType is B_Branch and the branch_range of `B` is not enough, build the transfer to forward the b branch, if
-static AssemblyCodeChunk *GenerateFastForwardTrampoline(addr_t source_address, addr_t target_address) {
-  AssemblyCodeChunk *cchunk = NULL;
-
-  TurboAssembler turbo_assembler_(0);
-
-  // Use adrp + add branch
-  cchunk = NearMemoryArena::AllocateCodeChunk((addr_t)source_address, ARM64_B_XXX_RANGE, 3 * 4);
-  if (cchunk == nullptr) {
-    ERROR_LOG("Can't found near code chunk");
-    return NULL;
-  }
-
-  // Use adrp + add branch
-  uint64_t distance = llabs((int64_t)((addr_t)cchunk->address - target_address));
-  uint64_t adrp_range = ((uint64_t)1 << (2 + 19 + 12 - 1));
-  if (distance < adrp_range) { // Use adrp + add branch == (3 * 4) trampoline size
-    _ AdrpAdd(TMP_REG_0, (addr_t)cchunk->address, target_address);
-    _ br(TMP_REG_0);
-    DLOG(0, "Forward Trampoline use [Adrp, Add, Br] combine");
-  } else {
-    delete cchunk;
-    cchunk = NULL;
-  }
-
-  // Use absolute branch
-  if (cchunk == NULL) {
-#if 0
-    // Use literal ldr == (4 * 4) trampoline size
-  CodeGen codegen(&turbo_assembler_);
-  // forward trampoline => target address
-  codegen.LiteralLdrBranch(target_address);
-  DLOG(0, "Forward Trampoline use [Ldr, Br, Label] combine");
-#else
-    // Use mov + br == (4 * 5) trampoline size
-#define _ turbo_assembler_.
-    _ Mov(TMP_REG_0, target_address);
-    _ br(TMP_REG_0);
-    DLOG(0, "Forward Trampoline use [Mov, Br] combine");
-#endif
-
-    size_t tramp_size = turbo_assembler_.GetCodeBuffer()->getSize();
-    cchunk = NearMemoryArena::AllocateCodeChunk((addr_t)source_address, ARM64_B_XXX_RANGE, tramp_size);
-    if (cchunk == nullptr) {
-      ERROR_LOG("Can't found near code chunk");
-      return NULL;
-    }
-  }
-
-  turbo_assembler_.SetRealizedAddress(cchunk->address);
-
-  AssemblyCodeChunk *result = NULL;
-  result = AssemblyCodeBuilder::FinalizeFromTurboAssembler(&turbo_assembler_);
-
-  { // release
-    delete cchunk;
-  }
-  return result;
-}
-
-CodeBufferBase *GenerateNearTrampolineBuffer(InterceptRouting *routing, addr_t src, addr_t dst) {
-  CodeBufferBase *result = NULL;
-
-  TurboAssembler turbo_assembler_((void *)src);
-#define _ turbo_assembler_.
-
-  // branch to trampoline_target directly
-  if (llabs((long long)dst - (long long)src) < ARM64_B_XXX_RANGE) {
-    _ b(dst - src);
-  } else {
-    AssemblyCodeChunk *fast_forward_trampoline = NULL;
-    fast_forward_trampoline = GenerateFastForwardTrampoline(src, dst);
-    if (!fast_forward_trampoline)
-      return NULL;
-    // trampoline => fast_forward_trampoline
-    addr_t fast_forward_trampoline_addr = fast_forward_trampoline->raw_instruction_start();
-    _ b(fast_forward_trampoline_addr - src);
-  }
-
-  // free the original trampoline
-  result = turbo_assembler_.GetCodeBuffer()->Copy();
-  return result;
-}
-
-#endif
diff --git a/loader/dobby/source/TrampolineBridge/Trampoline/x64/trampoline-x64.cc b/loader/dobby/source/TrampolineBridge/Trampoline/x64/trampoline-x64.cc
deleted file mode 100644
index c7cbb9c3..00000000
--- a/loader/dobby/source/TrampolineBridge/Trampoline/x64/trampoline-x64.cc
+++ /dev/null
@@ -1,56 +0,0 @@
-#include "platform_macro.h"
-#if defined(TARGET_ARCH_X64)
-
-#include "dobby_internal.h"
-
-#include "core/modules/assembler/assembler-x64.h"
-#include "core/modules/codegen/codegen-x64.h"
-
-#include "InstructionRelocation/x64/X64InstructionRelocation.h"
-
-#include "MemoryAllocator/NearMemoryArena.h"
-#include "InterceptRouting/RoutingPlugin/RoutingPlugin.h"
-
-using namespace zz::x64;
-
-static void **AllocIndirectStub(addr_t branch_address) {
-  WritableDataChunk *forwardStub = NULL;
-
-    DLOG(0, "AllocIndirectStub");
-  forwardStub =
-      NearMemoryArena::AllocateDataChunk((addr_t)branch_address, (size_t)2 * 1024 * 1024 * 1024, (int)sizeof(void *));
-  if (forwardStub == nullptr) {
-    ERROR_LOG("Not found near forward stub");
-    return NULL;
-  }
-  DLOG(0, "AllocedIndirectStub");
-
-  return (void **)forwardStub->address;
-}
-
-CodeBufferBase *GenerateNormalTrampolineBuffer(addr_t from, addr_t to) {
-    DLOG(0, "GenerateNormalTrampolineBuffer");
-  TurboAssembler turbo_assembler_((void *)from);
-#define _ turbo_assembler_.
-
-  // branch
-  DLOG(0, "sfd");
-  void **branch_stub = AllocIndirectStub(from);
-  *branch_stub = (void *)to;
-
-  CodeGen codegen(&turbo_assembler_);
-  codegen.JmpNearIndirect((uint64_t)branch_stub);
-  DLOG(0, "sss");
-
-  CodeBufferBase *result = NULL;
-  result = turbo_assembler_.GetCodeBuffer()->Copy();
-  DLOG(0, "a");
-  return result;
-}
-
-CodeBufferBase *GenerateNearTrampolineBuffer(InterceptRouting *routing, addr_t src, addr_t dst) {
-  DLOG(0, "x64 near branch trampoline enable default");
-  return NULL;
-}
-
-#endif
\ No newline at end of file
diff --git a/loader/dobby/source/TrampolineBridge/Trampoline/x86/trampoline-x86.cc b/loader/dobby/source/TrampolineBridge/Trampoline/x86/trampoline-x86.cc
deleted file mode 100644
index f86ceac9..00000000
--- a/loader/dobby/source/TrampolineBridge/Trampoline/x86/trampoline-x86.cc
+++ /dev/null
@@ -1,33 +0,0 @@
-#include "platform_macro.h"
-#if defined(TARGET_ARCH_IA32)
-
-#include "dobby_internal.h"
-
-#include "core/modules/assembler/assembler-ia32.h"
-#include "core/modules/codegen/codegen-ia32.h"
-
-#include "InstructionRelocation/x86/X86InstructionRelocation.h"
-
-#include "MemoryAllocator/NearMemoryArena.h"
-#include "InterceptRouting/RoutingPlugin/RoutingPlugin.h"
-
-using namespace zz::x86;
-
-CodeBufferBase *GenerateNormalTrampolineBuffer(addr_t from, addr_t to) {
-  TurboAssembler turbo_assembler_((void *)from);
-#define _ turbo_assembler_.
-
-  CodeGen codegen(&turbo_assembler_);
-  codegen.JmpNear((uint32_t)to);
-
-  CodeBufferBase *result = NULL;
-  result = turbo_assembler_.GetCodeBuffer()->Copy();
-  return result;
-}
-
-CodeBufferBase *GenerateNearTrampolineBuffer(InterceptRouting *routing, addr_t src, addr_t dst) {
-  DLOG(0, "x86 near branch trampoline enable default");
-  return NULL;
-}
-
-#endif
\ No newline at end of file
diff --git a/loader/dobby/source/UserMode/ExecMemory/clear-cache-tool-all.c b/loader/dobby/source/UserMode/ExecMemory/clear-cache-tool-all.c
deleted file mode 100644
index 2e3f0116..00000000
--- a/loader/dobby/source/UserMode/ExecMemory/clear-cache-tool-all.c
+++ /dev/null
@@ -1,165 +0,0 @@
-//===-- clear_cache.c - Implement __clear_cache ---------------------------===//
-//
-// 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
-//
-//===----------------------------------------------------------------------===//
-
-#include <stdint.h>
-#include <assert.h>
-#include <stddef.h>
-
-#if __APPLE__
-#include <libkern/OSCacheControl.h>
-#endif
-
-#if defined(_WIN32)
-// Forward declare Win32 APIs since the GCC mode driver does not handle the
-// newer SDKs as well as needed.
-uint32_t  FlushInstructionCache(uintptr_t hProcess, void *lpBaseAddress, uintptr_t dwSize);
-uintptr_t GetCurrentProcess(void);
-#endif
-
-#if defined(__FreeBSD__) && defined(__arm__)
-// clang-format off
-#include <sys/types.h>
-#include <machine/sysarch.h>
-// clang-format on
-#endif
-
-#if defined(__NetBSD__) && defined(__arm__)
-#include <machine/sysarch.h>
-#endif
-
-#if defined(__OpenBSD__) && (defined(__arm__) || defined(__mips__))
-// clang-format off
-#include <sys/types.h>
-#include <machine/sysarch.h>
-// clang-format on
-#endif
-
-#if defined(__linux__) && defined(__mips__)
-#include <sys/cachectl.h>
-#include <sys/syscall.h>
-#include <unistd.h>
-#endif
-
-// The compiler generates calls to __clear_cache() when creating
-// trampoline functions on the stack for use with nested functions.
-// It is expected to invalidate the instruction cache for the
-// specified range.
-
-void __clear_cache(void *start, void *end) {
-#if __i386__ || __x86_64__ || defined(_M_IX86) || defined(_M_X64)
-// Intel processors have a unified instruction and data cache
-// so there is nothing to do
-#elif defined(_WIN32) && (defined(__arm__) || defined(__aarch64__))
-  FlushInstructionCache(GetCurrentProcess(), start, end - start);
-#elif defined(__arm__) && !defined(__APPLE__)
-#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__)
-  struct arm_sync_icache_args arg;
-
-  arg.addr = (uintptr_t)start;
-  arg.len  = (uintptr_t)end - (uintptr_t)start;
-
-  sysarch(ARM_SYNC_ICACHE, &arg);
-#elif defined(__linux__)
-// We used to include asm/unistd.h for the __ARM_NR_cacheflush define, but
-// it also brought many other unused defines, as well as a dependency on
-// kernel headers to be installed.
-//
-// This value is stable at least since Linux 3.13 and should remain so for
-// compatibility reasons, warranting it's re-definition here.
-#define __ARM_NR_cacheflush 0x0f0002
-  register int       start_reg __asm("r0")  = (int)(intptr_t)start;
-  const register int end_reg __asm("r1")    = (int)(intptr_t)end;
-  const register int flags __asm("r2")      = 0;
-  const register int syscall_nr __asm("r7") = __ARM_NR_cacheflush;
-  __asm __volatile("svc 0x0" : "=r"(start_reg) : "r"(syscall_nr), "r"(start_reg), "r"(end_reg), "r"(flags));
-  assert(start_reg == 0 && "Cache flush syscall failed.");
-#else
-  compilerrt_abort();
-#endif
-#elif defined(__linux__) && defined(__mips__)
-  const uintptr_t start_int = (uintptr_t)start;
-  const uintptr_t end_int   = (uintptr_t)end;
-  syscall(__NR_cacheflush, start, (end_int - start_int), BCACHE);
-#elif defined(__mips__) && defined(__OpenBSD__)
-  cacheflush(start, (uintptr_t)end - (uintptr_t)start, BCACHE);
-#elif defined(__aarch64__) && !defined(__APPLE__)
-  uint64_t xstart = (uint64_t)(uintptr_t)start;
-  uint64_t xend   = (uint64_t)(uintptr_t)end;
-
-  // Get Cache Type Info.
-  static uint64_t ctr_el0 = 0;
-  if (ctr_el0 == 0)
-    __asm __volatile("mrs %0, ctr_el0" : "=r"(ctr_el0));
-
-  // The DC and IC instructions must use 64-bit registers so we don't use
-  // uintptr_t in case this runs in an IPL32 environment.
-  uint64_t addr;
-
-  // If CTR_EL0.IDC is set, data cache cleaning to the point of unification
-  // is not required for instruction to data coherence.
-  if (((ctr_el0 >> 28) & 0x1) == 0x0) {
-    const size_t dcache_line_size = 4 << ((ctr_el0 >> 16) & 15);
-    for (addr = xstart & ~(dcache_line_size - 1); addr < xend; addr += dcache_line_size)
-      __asm __volatile("dc cvau, %0" ::"r"(addr));
-  }
-  __asm __volatile("dsb ish");
-
-  // If CTR_EL0.DIC is set, instruction cache invalidation to the point of
-  // unification is not required for instruction to data coherence.
-  if (((ctr_el0 >> 29) & 0x1) == 0x0) {
-    const size_t icache_line_size = 4 << ((ctr_el0 >> 0) & 15);
-    for (addr = xstart & ~(icache_line_size - 1); addr < xend; addr += icache_line_size)
-      __asm __volatile("ic ivau, %0" ::"r"(addr));
-  }
-  __asm __volatile("isb sy");
-#elif defined(__powerpc64__)
-  const size_t line_size = 32;
-  const size_t len       = (uintptr_t)end - (uintptr_t)start;
-
-  const uintptr_t mask       = ~(line_size - 1);
-  const uintptr_t start_line = ((uintptr_t)start) & mask;
-  const uintptr_t end_line   = ((uintptr_t)start + len + line_size - 1) & mask;
-
-  for (uintptr_t line = start_line; line < end_line; line += line_size)
-    __asm__ volatile("dcbf 0, %0" : : "r"(line));
-  __asm__ volatile("sync");
-
-  for (uintptr_t line = start_line; line < end_line; line += line_size)
-    __asm__ volatile("icbi 0, %0" : : "r"(line));
-  __asm__ volatile("isync");
-#elif defined(__sparc__)
-  const size_t dword_size = 8;
-  const size_t len        = (uintptr_t)end - (uintptr_t)start;
-
-  const uintptr_t mask        = ~(dword_size - 1);
-  const uintptr_t start_dword = ((uintptr_t)start) & mask;
-  const uintptr_t end_dword   = ((uintptr_t)start + len + dword_size - 1) & mask;
-
-  for (uintptr_t dword = start_dword; dword < end_dword; dword += dword_size)
-    __asm__ volatile("flush %0" : : "r"(dword));
-#elif defined(__riscv) && defined(__linux__)
-#define __NR_riscv_flush_icache (244 + 15)
-  register void *      start_reg __asm("a0")  = start;
-  const register void *end_reg __asm("a1")    = end;
-  const register long  flags __asm("a2")      = 0;
-  const register long  syscall_nr __asm("a7") = __NR_riscv_flush_icache;
-  __asm __volatile("ecall" : "=r"(start_reg) : "r"(start_reg), "r"(end_reg), "r"(flags), "r"(syscall_nr));
-  assert(start_reg == 0 && "Cache flush syscall failed.");
-#else
-#if __APPLE__
-  // On Darwin, sys_icache_invalidate() provides this functionality
-  sys_icache_invalidate(start, end - start);
-#else
-  compilerrt_abort();
-#endif
-#endif
-}
-
-void ClearCache(void *start, void *end) {
-    __clear_cache(start, end);
-}
diff --git a/loader/dobby/source/UserMode/ExecMemory/clear-cache-tool/clear-cache-tool-arm-dummy.cc b/loader/dobby/source/UserMode/ExecMemory/clear-cache-tool/clear-cache-tool-arm-dummy.cc
deleted file mode 100644
index abe26c45..00000000
--- a/loader/dobby/source/UserMode/ExecMemory/clear-cache-tool/clear-cache-tool-arm-dummy.cc
+++ /dev/null
@@ -1,53 +0,0 @@
-#ifndef USER_MODE_CLEAR_CACHE_TOOL_H
-#define USER_MODE_CLEAR_CACHE_TOOL_H
-
-#include "core/arch/Cpu.h"
-
-#include "PlatformInterface/globals.h"
-
-#if !HOST_OS_IOS
-#include <sys/syscall.h> // for cache flushing.
-#endif
-
-void CpuFeatures::FlushICache(void *startp, void *endp) {
-
-#if HOST_OS_IOS
-  // Precompilation never patches code so there should be no I cache flushes.
-  CpuFeatures::ClearCache(startp, endp);
-
-#else
-
-  register uint32_t beg asm("r0") = reinterpret_cast<uint32_t>(startp);
-  register uint32_t end asm("r1") = reinterpret_cast<uint32_t>(endp);
-  register uint32_t flg asm("r2") = 0;
-
-#ifdef __clang__
-  // This variant of the asm avoids a constant pool entry, which can be
-  // problematic when LTO'ing. It is also slightly shorter.
-  register uint32_t scno asm("r7") = __ARM_NR_cacheflush;
-
-  asm volatile("svc 0\n" : : "r"(beg), "r"(end), "r"(flg), "r"(scno) : "memory");
-#else
-  // Use a different variant of the asm with GCC because some versions doesn't
-  // support r7 as an asm input.
-  asm volatile(
-      // This assembly works for both ARM and Thumb targets.
-
-      // Preserve r7; it is callee-saved, and GCC uses it as a frame pointer for
-      // Thumb targets.
-      "  push {r7}\n"
-      // r0 = beg
-      // r1 = end
-      // r2 = flags (0)
-      "  ldr r7, =%c[scno]\n" // r7 = syscall number
-      "  svc 0\n"
-
-      "  pop {r7}\n"
-      :
-      : "r"(beg), "r"(end), "r"(flg), [scno] "i"(__ARM_NR_cacheflush)
-      : "memory");
-#endif
-#endif
-}
-
-#endif
\ No newline at end of file
diff --git a/loader/dobby/source/UserMode/ExecMemory/clear-cache-tool/clear-cache-tool-arm64-dummy.cc b/loader/dobby/source/UserMode/ExecMemory/clear-cache-tool/clear-cache-tool-arm64-dummy.cc
deleted file mode 100644
index 60580a5c..00000000
--- a/loader/dobby/source/UserMode/ExecMemory/clear-cache-tool/clear-cache-tool-arm64-dummy.cc
+++ /dev/null
@@ -1,103 +0,0 @@
-#ifndef USER_MODE_CLEAR_CACHE_TOOL_ARM64_H
-#define USER_MODE_CLEAR_CACHE_TOOL_ARM64_H
-
-#include "core/arch/Cpu.h"
-
-#include "PlatformInterface/globals.h"
-
-class CacheLineSizes {
-public:
-  CacheLineSizes() {
-    // Copy the content of the cache type register to a core register.
-    __asm__ __volatile__("mrs %x[ctr], ctr_el0" // NOLINT
-                         : [ctr] "=r"(cache_type_register_));
-  }
-
-  uint32_t icache_line_size() const {
-    return ExtractCacheLineSize(0);
-  }
-  uint32_t dcache_line_size() const {
-    return ExtractCacheLineSize(16);
-  }
-
-private:
-  uint32_t ExtractCacheLineSize(int cache_line_size_shift) const {
-    // The cache type register holds the size of cache lines in words as a
-    // power of two.
-    return 4 << ((cache_type_register_ >> cache_line_size_shift) & 0xF);
-  }
-
-  uint32_t cache_type_register_;
-};
-
-void CpuFeatures::FlushICache(void *startp, void *endp) {
-  // The code below assumes user space cache operations are allowed. The goal
-  // of this routine is to make sure the code generated is visible to the I
-  // side of the CPU.
-
-#if HOST_OS_IOS
-  // Precompilation never patches code so there should be no I cache flushes.
-  CpuFeatures::ClearCache(startp, endp);
-#else
-  uintptr_t start = reinterpret_cast<uintptr_t>(startp);
-  // Sizes will be used to generate a mask big enough to cover a pointer.
-  CacheLineSizes sizes;
-  uintptr_t dsize = sizes.dcache_line_size();
-  uintptr_t isize = sizes.icache_line_size();
-  // Cache line sizes are always a power of 2.
-  uintptr_t dstart = start & ~(dsize - 1);
-  uintptr_t istart = start & ~(isize - 1);
-  uintptr_t end = reinterpret_cast<uintptr_t>(endp);
-
-  __asm__ __volatile__( // NOLINT
-                        // Clean every line of the D cache containing the target data.
-      "0:                                \n\t"
-      // dc       : Data Cache maintenance
-      //    c     : Clean
-      //     i    : Invalidate
-      //      va  : by (Virtual) Address
-      //        c : to the point of Coherency
-      // See ARM DDI 0406B page B2-12 for more information.
-      // We would prefer to use "cvau" (clean to the point of unification) here
-      // but we use "civac" to work around Cortex-A53 errata 819472, 826319,
-      // 827319 and 824069.
-      "dc   civac, %[dline]               \n\t"
-      "add  %[dline], %[dline], %[dsize]  \n\t"
-      "cmp  %[dline], %[end]              \n\t"
-      "b.lt 0b                            \n\t"
-      // Barrier to make sure the effect of the code above is visible to the rest
-      // of the world.
-      // dsb    : Data Synchronisation Barrier
-      //    ish : Inner SHareable domain
-      // The point of unification for an Inner Shareable shareability domain is
-      // the point by which the instruction and data caches of all the processors
-      // in that Inner Shareable shareability domain are guaranteed to see the
-      // same copy of a memory location.  See ARM DDI 0406B page B2-12 for more
-      // information.
-      "dsb  ish                           \n\t"
-      // Invalidate every line of the I cache containing the target data.
-      "1:                                 \n\t"
-      // ic      : instruction cache maintenance
-      //    i    : invalidate
-      //     va  : by address
-      //       u : to the point of unification
-      "ic   ivau, %[iline]                \n\t"
-      "add  %[iline], %[iline], %[isize]  \n\t"
-      "cmp  %[iline], %[end]              \n\t"
-      "b.lt 1b                            \n\t"
-      // Barrier to make sure the effect of the code above is visible to the rest
-      // of the world.
-      "dsb  ish                           \n\t"
-      // Barrier to ensure any prefetching which happened before this code is
-      // discarded.
-      // isb : Instruction Synchronisation Barrier
-      "isb                                \n\t"
-      : [dline] "+r"(dstart), [iline] "+r"(istart)
-      : [dsize] "r"(dsize), [isize] "r"(isize), [end] "r"(end)
-      // This code does not write to memory but without the dependency gcc might
-      // move this code before the code is generated.
-      : "cc", "memory"); // NOLINT
-#endif
-}
-
-#endif
diff --git a/loader/dobby/source/UserMode/ExecMemory/code-patch-tool-darwin.cc b/loader/dobby/source/UserMode/ExecMemory/code-patch-tool-darwin.cc
deleted file mode 100644
index a0c87b06..00000000
--- a/loader/dobby/source/UserMode/ExecMemory/code-patch-tool-darwin.cc
+++ /dev/null
@@ -1,129 +0,0 @@
-#include "dobby_internal.h"
-#include "core/arch/Cpu.h"
-#include "PlatformUnifiedInterface/ExecMemory/ClearCacheTool.h"
-#include "UnifiedInterface/platform.h"
-
-#include <unistd.h>
-
-#ifdef __APPLE__
-#include <mach-o/dyld.h>
-#include <mach/mach.h>
-#include <mach/vm_map.h>
-#include <sys/mman.h>
-#include "UserMode/UnifiedInterface/platform-darwin/mach_vm.h"
-#endif
-
-#if defined(__APPLE__)
-#include <dlfcn.h>
-#include <mach/vm_statistics.h>
-#endif
-
-#include "logging/check_logging.h"
-
-#include "platform_macro.h"
-
-#if defined(CODE_PATCH_WITH_SUBSTRATED) && defined(TARGET_ARCH_ARM64)
-#include <mach/mach.h>
-#include "bootstrap.h"
-#include "ExecMemory/substrated/mach_interface_support/substrated_client.h"
-
-#define KERN_ERROR_RETURN(err, failure)                                                                                \
-  do {                                                                                                                 \
-    if (err != KERN_SUCCESS) {                                                                                         \
-      return failure;                                                                                                  \
-    }                                                                                                                  \
-  } while (0);
-
-static mach_port_t substrated_server_port = MACH_PORT_NULL;
-
-static mach_port_t connect_mach_service(const char *name) {
-  mach_port_t port = MACH_PORT_NULL;
-  kern_return_t kr;
-
-#if 0
-  kr = task_get_special_port(mach_task_self(), TASK_BOOTSTRAP_PORT, &bootstrap_port);
-  KERN_ERROR_RETURN(kr, MACH_PORT_NULL)
-#endif
-
-  kr = bootstrap_look_up(bootstrap_port, (char *)name, &port);
-  KERN_ERROR_RETURN(kr, MACH_PORT_NULL);
-
-  substrated_server_port = port;
-
-  return port;
-}
-
-int code_remap_with_substrated(uint8_t *buffer, uint32_t buffer_size, addr_t address) {
-  if (!MACH_PORT_VALID(substrated_server_port)) {
-    substrated_server_port = connect_mach_service("cy:com.saurik.substrated");
-  }
-  if (!MACH_PORT_VALID(substrated_server_port))
-    return -1;
-
-  kern_return_t kr;
-  kr = substrated_mark(substrated_server_port, mach_task_self(), (mach_vm_address_t)buffer, buffer_size,
-                       (mach_vm_address_t *)&address);
-  if (kr != KERN_SUCCESS) {
-    return RT_FAILED;
-  }
-  return RT_SUCCESS;
-}
-#endif
-
-PUBLIC MemoryOperationError CodePatch(void *address, uint8_t *buffer, uint32_t buffer_size) {
-
-  kern_return_t kr;
-
-  int page_size = (int)sysconf(_SC_PAGESIZE);
-  addr_t page_aligned_address = ALIGN_FLOOR(address, page_size);
-  int offset = (int)((addr_t)address - page_aligned_address);
-
-  static mach_port_t self_port = mach_task_self();
-#ifdef __APPLE__
-  // try modify with substrated (steal from frida-gum)
-  addr_t remap_dummy_page =
-      (addr_t)mmap(0, page_size, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, VM_MAKE_TAG(255), 0);
-  if ((void *)remap_dummy_page == MAP_FAILED)
-    return kMemoryOperationError;
-
-  // copy original page
-  memcpy((void *)remap_dummy_page, (void *)page_aligned_address, page_size);
-
-  // patch buffer
-  memcpy((void *)(remap_dummy_page + offset), buffer, buffer_size);
-
-  // change permission
-  mprotect((void *)remap_dummy_page, page_size, PROT_READ | PROT_WRITE);
-
-  int ret = RT_FAILED;
-#if 0 && defined(CODE_PATCH_WITH_SUBSTRATED) && defined(TARGET_ARCH_ARM64)
-  ret = code_remap_with_substrated((uint8_t *)remap_dummy_page, (uint32_t)page_size, (addr_t)page_aligned_address);
-  if (0 && ret == RT_FAILED)
-    DLOG(0, "substrated failed, use vm_remap");
-#endif
-  if (ret == RT_FAILED) {
-    mprotect((void *)remap_dummy_page, page_size, PROT_READ | PROT_EXEC);
-    mach_vm_address_t remap_dest_page = (mach_vm_address_t)page_aligned_address;
-    vm_prot_t curr_protection, max_protection;
-    kr = mach_vm_remap(self_port, (mach_vm_address_t *)&remap_dest_page, page_size, 0,
-                       VM_FLAGS_OVERWRITE | VM_FLAGS_FIXED, self_port, (mach_vm_address_t)remap_dummy_page, TRUE,
-                       &curr_protection, &max_protection, VM_INHERIT_COPY);
-    if (kr != KERN_SUCCESS) {
-      return kMemoryOperationError;
-    }
-  }
-
-  // unmap the origin page
-  int err = munmap((void *)remap_dummy_page, (mach_vm_address_t)page_size);
-  if (err == -1) {
-    return kMemoryOperationError;
-  }
-
-#endif
-
-  addr_t clear_start = (addr_t)page_aligned_address + offset;
-  DCHECK_EQ(clear_start, (addr_t)address);
-
-  ClearCache((void *)address, (void *)((addr_t)address + buffer_size));
-  return kMemoryOperationSuccess;
-}
diff --git a/loader/dobby/source/UserMode/ExecMemory/code-patch-tool-posix.cc b/loader/dobby/source/UserMode/ExecMemory/code-patch-tool-posix.cc
deleted file mode 100644
index 1badae18..00000000
--- a/loader/dobby/source/UserMode/ExecMemory/code-patch-tool-posix.cc
+++ /dev/null
@@ -1,34 +0,0 @@
-
-#include "dobby_internal.h"
-#include "core/arch/Cpu.h"
-
-#include <unistd.h>
-#include <sys/mman.h>
-#include <string.h>
-
-#if !defined(__APPLE__)
-PUBLIC MemoryOperationError CodePatch(void *address, uint8_t *buffer, uint32_t buffer_size) {
-
-  int page_size = (int)sysconf(_SC_PAGESIZE);
-  uintptr_t page_align_address = ALIGN_FLOOR(address, page_size);
-  int offset = (uintptr_t)address - page_align_address;
-
-#if defined(__ANDROID__) || defined(__linux__)
-
-  // change page permission as rwx
-  mprotect((void *)page_align_address, page_size, PROT_READ | PROT_WRITE | PROT_EXEC);
-
-  // patch buffer
-  memcpy((void *)((addr_t)page_align_address + offset), buffer, buffer_size);
-
-  // restore page permission
-  mprotect((void *)page_align_address, page_size, PROT_READ | PROT_EXEC);
-#endif
-
-  addr_t clear_start_ = (addr_t)page_align_address + offset;
-  ClearCache((void *)clear_start_, (void *)(clear_start_ + buffer_size));
-
-  return kMemoryOperationSuccess;
-}
-
-#endif
\ No newline at end of file
diff --git a/loader/dobby/source/UserMode/ExecMemory/code-patch-tool-windows.cc b/loader/dobby/source/UserMode/ExecMemory/code-patch-tool-windows.cc
deleted file mode 100644
index a58e46f3..00000000
--- a/loader/dobby/source/UserMode/ExecMemory/code-patch-tool-windows.cc
+++ /dev/null
@@ -1,27 +0,0 @@
-#include "dobby_internal.h"
-
-#include <windows.h>
-
-using namespace zz;
-
-PUBLIC MemoryOperationError CodePatch(void *address, uint8_t *buffer, uint32_t buffer_size) {
-  DWORD oldProtect;
-  int pageSize;
-
-  // Get page size
-  SYSTEM_INFO si;
-  GetSystemInfo(&si);
-  pageSize = si.dwPageSize;
-
-  void *addressPageAlign = (void *)ALIGN(address, pageSize);
-
-  if (!VirtualProtect(addressPageAlign, pageSize, PAGE_EXECUTE_READWRITE, &oldProtect))
-    return kMemoryOperationError;
-
-  memcpy(address, buffer, buffer_size);
-
-  if (!VirtualProtect(addressPageAlign, pageSize, oldProtect, &oldProtect))
-    return kMemoryOperationError;
-
-  return kMemoryOperationSuccess;
-}
diff --git a/loader/dobby/source/UserMode/ExecMemory/substrated/include/bootstrap.h b/loader/dobby/source/UserMode/ExecMemory/substrated/include/bootstrap.h
deleted file mode 100644
index 0cb0acf2..00000000
--- a/loader/dobby/source/UserMode/ExecMemory/substrated/include/bootstrap.h
+++ /dev/null
@@ -1,91 +0,0 @@
-#ifndef __XPC_BOOTSTRAP_H__
-#define __XPC_BOOTSTRAP_H__
-
-#ifndef __XPC_INDIRECT__
-#define __XPC_INDIRECT__
-#endif // __XPC_INDIRECT__
-
-#include <xpc/base.h>
-#include <Availability.h>
-
-// <rdar://problem/13536274>
-#include <AvailabilityMacros.h>
-
-__BEGIN_DECLS;
-
-#include <mach/std_types.h>
-#include <mach/message.h>
-#include <sys/types.h>
-#include <stdbool.h>
-
-#define BOOTSTRAP_MAX_NAME_LEN 128
-#define BOOTSTRAP_MAX_CMD_LEN 512
-
-typedef char name_t[BOOTSTRAP_MAX_NAME_LEN];
-typedef char cmd_t[BOOTSTRAP_MAX_CMD_LEN];
-typedef name_t *name_array_t;
-typedef int bootstrap_status_t;
-typedef bootstrap_status_t *bootstrap_status_array_t;
-typedef unsigned int bootstrap_property_t;
-typedef bootstrap_property_t *bootstrap_property_array_t;
-
-typedef boolean_t *bool_array_t;
-
-#define BOOTSTRAP_MAX_LOOKUP_COUNT 20
-
-#define BOOTSTRAP_SUCCESS 0
-#define BOOTSTRAP_NOT_PRIVILEGED 1100
-#define BOOTSTRAP_NAME_IN_USE 1101
-#define BOOTSTRAP_UNKNOWN_SERVICE 1102
-#define BOOTSTRAP_SERVICE_ACTIVE 1103
-#define BOOTSTRAP_BAD_COUNT 1104
-#define BOOTSTRAP_NO_MEMORY 1105
-#define BOOTSTRAP_NO_CHILDREN 1106
-
-#define BOOTSTRAP_STATUS_INACTIVE 0
-#define BOOTSTRAP_STATUS_ACTIVE 1
-#define BOOTSTRAP_STATUS_ON_DEMAND 2
-
-XPC_EXPORT
-mach_port_t bootstrap_port;
-
-__OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_10, __IPHONE_2_0, __IPHONE_7_0)
-XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL5 kern_return_t bootstrap_create_server(mach_port_t bp, cmd_t server_cmd,
-                                                                              uid_t server_uid, boolean_t on_demand,
-                                                                              mach_port_t *server_port);
-
-__OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_10, __IPHONE_2_0, __IPHONE_7_0)
-XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL3 kern_return_t bootstrap_subset(mach_port_t bp, mach_port_t requestor_port,
-                                                                       mach_port_t *subset_port);
-
-__OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_5, __IPHONE_2_0, __IPHONE_7_0)
-XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL2 kern_return_t bootstrap_unprivileged(mach_port_t bp, mach_port_t *unpriv_port);
-
-__OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0)
-XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL2 kern_return_t bootstrap_parent(mach_port_t bp, mach_port_t *parent_port);
-
-__OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_5, __IPHONE_2_0, __IPHONE_7_0)
-XPC_EXPORT XPC_WARN_RESULT kern_return_t bootstrap_register(mach_port_t bp, name_t service_name, mach_port_t sp);
-
-__OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_6, __IPHONE_2_0, __IPHONE_7_0)
-XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL3 kern_return_t bootstrap_create_service(mach_port_t bp, name_t service_name,
-                                                                               mach_port_t *sp);
-
-__OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0)
-XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL3 kern_return_t bootstrap_check_in(mach_port_t bp, const name_t service_name,
-                                                                         mach_port_t *sp);
-
-// Once <rdar://problem/13542045> is fixed, we can add back in XPC_WARN_RESULT.
-__OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0)
-XPC_EXPORT XPC_NONNULL3 kern_return_t bootstrap_look_up(mach_port_t bp, const name_t service_name, mach_port_t *sp);
-
-__OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_5, __IPHONE_2_0, __IPHONE_7_0)
-XPC_EXPORT XPC_WARN_RESULT XPC_NONNULL2 kern_return_t bootstrap_status(mach_port_t bp, name_t service_name,
-                                                                       bootstrap_status_t *service_active);
-
-__OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0)
-XPC_EXPORT XPC_WARN_RESULT const char *bootstrap_strerror(kern_return_t r);
-
-__END_DECLS;
-
-#endif // __XPC_BOOTSTRAP_H__
diff --git a/loader/dobby/source/UserMode/ExecMemory/substrated/include/xpc/base.h b/loader/dobby/source/UserMode/ExecMemory/substrated/include/xpc/base.h
deleted file mode 100644
index 87b84dbc..00000000
--- a/loader/dobby/source/UserMode/ExecMemory/substrated/include/xpc/base.h
+++ /dev/null
@@ -1,202 +0,0 @@
-// Copyright (c) 2009-2011 Apple Inc. All rights reserved.
-
-#ifndef __XPC_BASE_H__
-#define __XPC_BASE_H__
-
-#include <sys/cdefs.h>
-
-__BEGIN_DECLS
-
-#if !defined(__has_include)
-#define __has_include(x) 0
-#endif // !defined(__has_include)
-
-#if !defined(__has_attribute)
-#define __has_attribute(x) 0
-#endif // !defined(__has_attribute)
-
-#if !defined(__has_feature)
-#define __has_feature(x) 0
-#endif // !defined(__has_feature)
-
-#if !defined(__has_extension)
-#define __has_extension(x) 0
-#endif // !defined(__has_extension)
-
-#if __has_include(<xpc/availability.h>)
-#include <xpc/availability.h>
-#else // __has_include(<xpc/availability.h>)
-#include <Availability.h>
-#endif // __has_include(<xpc/availability.h>)
-
-#if XPC_SERVICE_MAIN_IN_LIBXPC
-#define XPC_HOSTING_OLD_MAIN 1
-#else // XPC_SERVICE_MAIN_IN_LIBXPC
-#define XPC_HOSTING_OLD_MAIN 0
-#endif // XPC_SERVICE_MAIN_IN_LIBXPC
-
-#ifndef __XPC_INDIRECT__
-#error "Please #include <xpc/xpc.h> instead of this file directly."
-#endif // __XPC_INDIRECT__
-
-#pragma mark Attribute Shims
-#ifdef __GNUC__
-#define XPC_CONSTRUCTOR __attribute__((constructor))
-#define XPC_NORETURN __attribute__((__noreturn__))
-#define XPC_NOTHROW __attribute__((__nothrow__))
-#define XPC_NONNULL1 __attribute__((__nonnull__(1)))
-#define XPC_NONNULL2 __attribute__((__nonnull__(2)))
-#define XPC_NONNULL3 __attribute__((__nonnull__(3)))
-#define XPC_NONNULL4 __attribute__((__nonnull__(4)))
-#define XPC_NONNULL5 __attribute__((__nonnull__(5)))
-#define XPC_NONNULL6 __attribute__((__nonnull__(6)))
-#define XPC_NONNULL7 __attribute__((__nonnull__(7)))
-#define XPC_NONNULL8 __attribute__((__nonnull__(8)))
-#define XPC_NONNULL9 __attribute__((__nonnull__(9)))
-#define XPC_NONNULL10 __attribute__((__nonnull__(10)))
-#define XPC_NONNULL11 __attribute__((__nonnull__(11)))
-#define XPC_NONNULL_ALL __attribute__((__nonnull__))
-#define XPC_SENTINEL __attribute__((__sentinel__))
-#define XPC_PURE __attribute__((__pure__))
-#define XPC_WARN_RESULT __attribute__((__warn_unused_result__))
-#define XPC_MALLOC __attribute__((__malloc__))
-#define XPC_UNUSED __attribute__((__unused__))
-#define XPC_USED __attribute__((__used__))
-#define XPC_PACKED __attribute__((__packed__))
-#define XPC_PRINTF(m, n) __attribute__((format(printf, m, n)))
-#define XPC_INLINE static __inline__ __attribute__((__always_inline__))
-#define XPC_NOINLINE __attribute__((noinline))
-#define XPC_NOIMPL __attribute__((unavailable))
-
-#if __has_attribute(noescape)
-#define XPC_NOESCAPE __attribute__((__noescape__))
-#else
-#define XPC_NOESCAPE
-#endif
-
-#if __has_extension(attribute_unavailable_with_message)
-#define XPC_UNAVAILABLE(m) __attribute__((unavailable(m)))
-#else // __has_extension(attribute_unavailable_with_message)
-#define XPC_UNAVAILABLE(m) XPC_NOIMPL
-#endif // __has_extension(attribute_unavailable_with_message)
-
-#define XPC_EXPORT extern __attribute__((visibility("default")))
-#define XPC_NOEXPORT __attribute__((visibility("hidden")))
-#define XPC_WEAKIMPORT extern __attribute__((weak_import))
-#define XPC_DEBUGGER_EXCL XPC_NOEXPORT XPC_USED
-#define XPC_TRANSPARENT_UNION __attribute__((transparent_union))
-#if __clang__
-#define XPC_DEPRECATED(m) __attribute__((deprecated(m)))
-#else // __clang__
-#define XPC_DEPRECATED(m) __attribute__((deprecated))
-#endif // __clang
-
-#if __XPC_TEST__
-#define XPC_TESTSTATIC
-#define XPC_TESTEXTERN(x) extern x
-#else // __XPC_TEST__
-#define XPC_TESTSTATIC static
-#define XPC_TESTEXTERN(x)
-#endif // __XPC_TEST__
-
-#if __has_feature(objc_arc)
-#define XPC_GIVES_REFERENCE __strong
-#define XPC_UNRETAINED __unsafe_unretained
-#define XPC_BRIDGE(xo) ((__bridge void *)(xo))
-#define XPC_BRIDGEREF_BEGIN(xo) ((__bridge_retained void *)(xo))
-#define XPC_BRIDGEREF_BEGIN_WITH_REF(xo) ((__bridge void *)(xo))
-#define XPC_BRIDGEREF_MIDDLE(xo) ((__bridge id)(xo))
-#define XPC_BRIDGEREF_END(xo) ((__bridge_transfer id)(xo))
-#else // __has_feature(objc_arc)
-#define XPC_GIVES_REFERENCE
-#define XPC_UNRETAINED
-#define XPC_BRIDGE(xo) (xo)
-#define XPC_BRIDGEREF_BEGIN(xo) (xo)
-#define XPC_BRIDGEREF_BEGIN_WITH_REF(xo) (xo)
-#define XPC_BRIDGEREF_MIDDLE(xo) (xo)
-#define XPC_BRIDGEREF_END(xo) (xo)
-#endif // __has_feature(objc_arc)
-
-#define _xpc_unreachable() __builtin_unreachable()
-#else // __GNUC__
-/*! @parseOnly */
-#define XPC_CONSTRUCTOR
-/*! @parseOnly */
-#define XPC_NORETURN
-/*! @parseOnly */
-#define XPC_NOTHROW
-/*! @parseOnly */
-#define XPC_NONNULL1
-/*! @parseOnly */
-#define XPC_NONNULL2
-/*! @parseOnly */
-#define XPC_NONNULL3
-/*! @parseOnly */
-#define XPC_NONNULL4
-/*! @parseOnly */
-#define XPC_NONNULL5
-/*! @parseOnly */
-#define XPC_NONNULL6
-/*! @parseOnly */
-#define XPC_NONNULL7
-/*! @parseOnly */
-#define XPC_NONNULL8
-/*! @parseOnly */
-#define XPC_NONNULL9
-/*! @parseOnly */
-#define XPC_NONNULL10
-/*! @parseOnly */
-#define XPC_NONNULL11
-/*! @parseOnly */
-#define XPC_NONNULL(n)
-/*! @parseOnly */
-#define XPC_NONNULL_ALL
-/*! @parseOnly */
-#define XPC_SENTINEL
-/*! @parseOnly */
-#define XPC_PURE
-/*! @parseOnly */
-#define XPC_WARN_RESULT
-/*! @parseOnly */
-#define XPC_MALLOC
-/*! @parseOnly */
-#define XPC_UNUSED
-/*! @parseOnly */
-#define XPC_PACKED
-/*! @parseOnly */
-#define XPC_PRINTF(m, n)
-/*! @parseOnly */
-#define XPC_INLINE static inline
-/*! @parseOnly */
-#define XPC_NOINLINE
-/*! @parseOnly */
-#define XPC_NOIMPL
-/*! @parseOnly */
-#define XPC_EXPORT extern
-/*! @parseOnly */
-#define XPC_WEAKIMPORT
-/*! @parseOnly */
-#define XPC_DEPRECATED
-/*! @parseOnly */
-#define XPC_UNAVAILABLE(m)
-/*! @parseOnly */
-#define XPC_NOESCAPE
-#endif // __GNUC__
-
-#if __has_feature(assume_nonnull)
-#define XPC_ASSUME_NONNULL_BEGIN _Pragma("clang assume_nonnull begin")
-#define XPC_ASSUME_NONNULL_END _Pragma("clang assume_nonnull end")
-#else
-#define XPC_ASSUME_NONNULL_BEGIN
-#define XPC_ASSUME_NONNULL_END
-#endif
-
-#if __has_feature(nullability_on_arrays)
-#define XPC_NONNULL_ARRAY _Nonnull
-#else
-#define XPC_NONNULL_ARRAY
-#endif
-
-__END_DECLS
-
-#endif // __XPC_BASE_H__
diff --git a/loader/dobby/source/UserMode/ExecMemory/substrated/mach_interface_support/substrated.defs b/loader/dobby/source/UserMode/ExecMemory/substrated/mach_interface_support/substrated.defs
deleted file mode 100644
index f8b1640a..00000000
--- a/loader/dobby/source/UserMode/ExecMemory/substrated/mach_interface_support/substrated.defs
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * Regenerate with:
- *
- * $(xcrun --sdk macosx -f mig) \
- *     -isysroot $(xcrun --sdk macosx --show-sdk-path) \
- *     -sheader substratedserver.h \
- *     -server substratedserver.c \
- *     -header substratedclient.h \
- *     -user substratedclient.c \
- *     substrated.defs
- */
-
-subsystem substrated 9000;
-
-#include <mach/std_types.defs>
-#include <mach/mach_types.defs>
-
-routine substrated_mark (
-		server		: mach_port_t;
-		task		: vm_task_entry_t;
-		source_address	: mach_vm_address_t;
-		source_size	: mach_vm_size_t;
-	inout	target_address	: mach_vm_address_t
-);
diff --git a/loader/dobby/source/UserMode/ExecMemory/substrated/mach_interface_support/substrated_client.c b/loader/dobby/source/UserMode/ExecMemory/substrated/mach_interface_support/substrated_client.c
deleted file mode 100644
index d63af0d2..00000000
--- a/loader/dobby/source/UserMode/ExecMemory/substrated/mach_interface_support/substrated_client.c
+++ /dev/null
@@ -1,311 +0,0 @@
-/*
- * IDENTIFICATION:
- * stub generated Tue Jan  7 03:06:18 2020
- * with a MiG generated by bootstrap_cmds-116
- * OPTIONS: 
- */
-#define	__MIG_check__Reply__substrated_subsystem__ 1
-
-#include "substrated_client.h"
-
-/* TODO: #include <mach/mach.h> */
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-extern void mach_msg_destroy(mach_msg_header_t *);
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#ifndef	mig_internal
-#define	mig_internal	static __inline__
-#endif	/* mig_internal */
-
-#ifndef	mig_external
-#define mig_external
-#endif	/* mig_external */
-
-#if	!defined(__MigTypeCheck) && defined(TypeCheck)
-#define	__MigTypeCheck		TypeCheck	/* Legacy setting */
-#endif	/* !defined(__MigTypeCheck) */
-
-#if	!defined(__MigKernelSpecificCode) && defined(_MIG_KERNEL_SPECIFIC_CODE_)
-#define	__MigKernelSpecificCode	_MIG_KERNEL_SPECIFIC_CODE_	/* Legacy setting */
-#endif	/* !defined(__MigKernelSpecificCode) */
-
-#ifndef	LimitCheck
-#define	LimitCheck 0
-#endif	/* LimitCheck */
-
-#ifndef	min
-#define	min(a,b)  ( ((a) < (b))? (a): (b) )
-#endif	/* min */
-
-#if !defined(_WALIGN_)
-#define _WALIGN_(x) (((x) + 3) & ~3)
-#endif /* !defined(_WALIGN_) */
-
-#if !defined(_WALIGNSZ_)
-#define _WALIGNSZ_(x) _WALIGN_(sizeof(x))
-#endif /* !defined(_WALIGNSZ_) */
-
-#ifndef	UseStaticTemplates
-#define	UseStaticTemplates	0
-#endif	/* UseStaticTemplates */
-
-#ifndef MIG_SERVER_ROUTINE
-#define MIG_SERVER_ROUTINE
-#endif
-
-#ifndef	__MachMsgErrorWithTimeout
-#define	__MachMsgErrorWithTimeout(_R_) { \
-	switch (_R_) { \
-	case MACH_SEND_INVALID_DATA: \
-	case MACH_SEND_INVALID_DEST: \
-	case MACH_SEND_INVALID_HEADER: \
-		mig_put_reply_port(InP->Head.msgh_reply_port); \
-		break; \
-	case MACH_SEND_TIMED_OUT: \
-	case MACH_RCV_TIMED_OUT: \
-	default: \
-		mig_dealloc_reply_port(InP->Head.msgh_reply_port); \
-	} \
-}
-#endif	/* __MachMsgErrorWithTimeout */
-
-#ifndef	__MachMsgErrorWithoutTimeout
-#define	__MachMsgErrorWithoutTimeout(_R_) { \
-	switch (_R_) { \
-	case MACH_SEND_INVALID_DATA: \
-	case MACH_SEND_INVALID_DEST: \
-	case MACH_SEND_INVALID_HEADER: \
-		mig_put_reply_port(InP->Head.msgh_reply_port); \
-		break; \
-	default: \
-		mig_dealloc_reply_port(InP->Head.msgh_reply_port); \
-	} \
-}
-#endif	/* __MachMsgErrorWithoutTimeout */
-
-#ifndef	__DeclareSendRpc
-#define	__DeclareSendRpc(_NUM_, _NAME_)
-#endif	/* __DeclareSendRpc */
-
-#ifndef	__BeforeSendRpc
-#define	__BeforeSendRpc(_NUM_, _NAME_)
-#endif	/* __BeforeSendRpc */
-
-#ifndef	__AfterSendRpc
-#define	__AfterSendRpc(_NUM_, _NAME_)
-#endif	/* __AfterSendRpc */
-
-#ifndef	__DeclareSendSimple
-#define	__DeclareSendSimple(_NUM_, _NAME_)
-#endif	/* __DeclareSendSimple */
-
-#ifndef	__BeforeSendSimple
-#define	__BeforeSendSimple(_NUM_, _NAME_)
-#endif	/* __BeforeSendSimple */
-
-#ifndef	__AfterSendSimple
-#define	__AfterSendSimple(_NUM_, _NAME_)
-#endif	/* __AfterSendSimple */
-
-#define msgh_request_port	msgh_remote_port
-#define msgh_reply_port		msgh_local_port
-
-
-
-#if ( __MigTypeCheck )
-#if __MIG_check__Reply__substrated_subsystem__
-#if !defined(__MIG_check__Reply__substrated_mark_t__defined)
-#define __MIG_check__Reply__substrated_mark_t__defined
-
-mig_internal kern_return_t __MIG_check__Reply__substrated_mark_t(__Reply__substrated_mark_t *Out0P)
-{
-
-	typedef __Reply__substrated_mark_t __Reply __attribute__((unused));
-#if	__MigTypeCheck
-	unsigned int msgh_size;
-#endif	/* __MigTypeCheck */
-	if (Out0P->Head.msgh_id != 9100) {
-	    if (Out0P->Head.msgh_id == MACH_NOTIFY_SEND_ONCE)
-		{ return MIG_SERVER_DIED; }
-	    else
-		{ return MIG_REPLY_MISMATCH; }
-	}
-
-#if	__MigTypeCheck
-	msgh_size = Out0P->Head.msgh_size;
-
-	if ((Out0P->Head.msgh_bits & MACH_MSGH_BITS_COMPLEX) ||
-	    ((msgh_size != (mach_msg_size_t)sizeof(__Reply)) &&
-	     (msgh_size != (mach_msg_size_t)sizeof(mig_reply_error_t) ||
-	      Out0P->RetCode == KERN_SUCCESS)))
-		{ return MIG_TYPE_ERROR ; }
-#endif	/* __MigTypeCheck */
-
-#if	__MigTypeCheck
-	if (Out0P->Head.msgh_request_port != MACH_PORT_NULL) {
-		return MIG_TYPE_ERROR;
-	}
-#endif	/* __MigTypeCheck */
-	if (Out0P->RetCode != KERN_SUCCESS) {
-		return ((mig_reply_error_t *)Out0P)->RetCode;
-	}
-
-	return MACH_MSG_SUCCESS;
-}
-#endif /* !defined(__MIG_check__Reply__substrated_mark_t__defined) */
-#endif /* __MIG_check__Reply__substrated_subsystem__ */
-#endif /* ( __MigTypeCheck ) */
-
-
-/* Routine substrated_mark */
-mig_external kern_return_t substrated_mark
-(
-	mach_port_t server,
-	vm_map_t task,
-	mach_vm_address_t source_address,
-	mach_vm_size_t source_size,
-	mach_vm_address_t *target_address
-)
-{
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t task;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		mach_vm_address_t source_address;
-		mach_vm_size_t source_size;
-		mach_vm_address_t target_address;
-	} Request __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		mach_vm_address_t target_address;
-		mach_msg_trailer_t trailer;
-	} Reply __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		NDR_record_t NDR;
-		kern_return_t RetCode;
-		mach_vm_address_t target_address;
-	} __Reply __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-	/*
-	 * typedef struct {
-	 * 	mach_msg_header_t Head;
-	 * 	NDR_record_t NDR;
-	 * 	kern_return_t RetCode;
-	 * } mig_reply_error_t;
-	 */
-
-	union {
-		Request In;
-		Reply Out;
-	} Mess;
-
-	Request *InP = &Mess.In;
-	Reply *Out0P = &Mess.Out;
-
-	mach_msg_return_t msg_result;
-
-#ifdef	__MIG_check__Reply__substrated_mark_t__defined
-	kern_return_t check_result;
-#endif	/* __MIG_check__Reply__substrated_mark_t__defined */
-
-	__DeclareSendRpc(9000, "substrated_mark")
-
-#if	UseStaticTemplates
-	const static mach_msg_port_descriptor_t taskTemplate = {
-		/* name = */		MACH_PORT_NULL,
-		/* pad1 = */		0,
-		/* pad2 = */		0,
-		/* disp = */		19,
-		/* type = */		MACH_MSG_PORT_DESCRIPTOR,
-	};
-#endif	/* UseStaticTemplates */
-
-	InP->msgh_body.msgh_descriptor_count = 1;
-#if	UseStaticTemplates
-	InP->task = taskTemplate;
-	InP->task.name = task;
-#else	/* UseStaticTemplates */
-	InP->task.name = task;
-	InP->task.disposition = 19;
-	InP->task.type = MACH_MSG_PORT_DESCRIPTOR;
-#endif	/* UseStaticTemplates */
-
-	InP->NDR = NDR_record;
-
-	InP->source_address = source_address;
-
-	InP->source_size = source_size;
-
-	InP->target_address = *target_address;
-
-	InP->Head.msgh_bits = MACH_MSGH_BITS_COMPLEX|
-		MACH_MSGH_BITS(19, MACH_MSG_TYPE_MAKE_SEND_ONCE);
-	/* msgh_size passed as argument */
-	InP->Head.msgh_request_port = server;
-	InP->Head.msgh_reply_port = mig_get_reply_port();
-	InP->Head.msgh_id = 9000;
-	InP->Head.msgh_reserved = 0;
-	
-/* BEGIN VOUCHER CODE */
-
-#ifdef USING_VOUCHERS
-	if (voucher_mach_msg_set != NULL) {
-		voucher_mach_msg_set(&InP->Head);
-	}
-#endif // USING_VOUCHERS
-	
-/* END VOUCHER CODE */
-
-	__BeforeSendRpc(9000, "substrated_mark")
-	msg_result = mach_msg(&InP->Head, MACH_SEND_MSG|MACH_RCV_MSG|MACH_MSG_OPTION_NONE, (mach_msg_size_t)sizeof(Request), (mach_msg_size_t)sizeof(Reply), InP->Head.msgh_reply_port, MACH_MSG_TIMEOUT_NONE, MACH_PORT_NULL);
-	__AfterSendRpc(9000, "substrated_mark")
-	if (msg_result != MACH_MSG_SUCCESS) {
-		__MachMsgErrorWithoutTimeout(msg_result);
-	}
-	if (msg_result != MACH_MSG_SUCCESS) {
-		{ return msg_result; }
-	}
-
-
-#if	defined(__MIG_check__Reply__substrated_mark_t__defined)
-	check_result = __MIG_check__Reply__substrated_mark_t((__Reply__substrated_mark_t *)Out0P);
-	if (check_result != MACH_MSG_SUCCESS) {
-		mach_msg_destroy(&Out0P->Head);
-		{ return check_result; }
-	}
-#endif	/* defined(__MIG_check__Reply__substrated_mark_t__defined) */
-
-	*target_address = Out0P->target_address;
-
-	return KERN_SUCCESS;
-}
diff --git a/loader/dobby/source/UserMode/ExecMemory/substrated/mach_interface_support/substrated_client.h b/loader/dobby/source/UserMode/ExecMemory/substrated/mach_interface_support/substrated_client.h
deleted file mode 100644
index 8c44b3fb..00000000
--- a/loader/dobby/source/UserMode/ExecMemory/substrated/mach_interface_support/substrated_client.h
+++ /dev/null
@@ -1,182 +0,0 @@
-#ifndef _substrated_user_
-#define _substrated_user_
-
-/* Module substrated */
-
-#include <string.h>
-#include <mach/ndr.h>
-#include <mach/boolean.h>
-#include <mach/kern_return.h>
-#include <mach/notify.h>
-#include <mach/mach_types.h>
-#include <mach/message.h>
-#include <mach/mig_errors.h>
-#include <mach/port.h>
-
-/* BEGIN VOUCHER CODE */
-
-#ifndef KERNEL
-#if defined(__has_include)
-#if __has_include(<mach/mig_voucher_support.h>)
-#ifndef USING_VOUCHERS
-#define USING_VOUCHERS
-#endif
-#ifndef __VOUCHER_FORWARD_TYPE_DECLS__
-#define __VOUCHER_FORWARD_TYPE_DECLS__
-#ifdef __cplusplus
-extern "C" {
-#endif
-extern boolean_t voucher_mach_msg_set(mach_msg_header_t *msg) __attribute__((weak_import));
-#ifdef __cplusplus
-}
-#endif
-#endif // __VOUCHER_FORWARD_TYPE_DECLS__
-#endif // __has_include(<mach/mach_voucher_types.h>)
-#endif // __has_include
-#endif // !KERNEL
-
-/* END VOUCHER CODE */
-
-/* BEGIN MIG_STRNCPY_ZEROFILL CODE */
-
-#if defined(__has_include)
-#if __has_include(<mach/mig_strncpy_zerofill_support.h>)
-#ifndef USING_MIG_STRNCPY_ZEROFILL
-#define USING_MIG_STRNCPY_ZEROFILL
-#endif
-#ifndef __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
-#define __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
-#ifdef __cplusplus
-extern "C" {
-#endif
-extern int mig_strncpy_zerofill(char *dest, const char *src, int len) __attribute__((weak_import));
-#ifdef __cplusplus
-}
-#endif
-#endif /* __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__ */
-#endif /* __has_include(<mach/mig_strncpy_zerofill_support.h>) */
-#endif /* __has_include */
-
-/* END MIG_STRNCPY_ZEROFILL CODE */
-
-#ifdef AUTOTEST
-#ifndef FUNCTION_PTR_T
-#define FUNCTION_PTR_T
-typedef void (*function_ptr_t)(mach_port_t, char *, mach_msg_type_number_t);
-typedef struct {
-  char *name;
-  function_ptr_t function;
-} function_table_entry;
-typedef function_table_entry *function_table_t;
-#endif /* FUNCTION_PTR_T */
-#endif /* AUTOTEST */
-
-#ifndef substrated_MSG_COUNT
-#define substrated_MSG_COUNT 1
-#endif /* substrated_MSG_COUNT */
-
-#include <mach/std_types.h>
-#include <mach/mig.h>
-#include <mach/mig.h>
-#include <mach/mach_types.h>
-
-#ifdef __BeforeMigUserHeader
-__BeforeMigUserHeader
-#endif /* __BeforeMigUserHeader */
-
-#include <sys/cdefs.h>
-    __BEGIN_DECLS
-
-/* Routine substrated_mark */
-#ifdef mig_external
-        mig_external
-#else
-extern
-#endif /* mig_external */
-            kern_return_t
-            substrated_mark(mach_port_t server, vm_map_t task, mach_vm_address_t source_address,
-                            mach_vm_size_t source_size, mach_vm_address_t *target_address);
-
-__END_DECLS
-
-/********************** Caution **************************/
-/* The following data types should be used to calculate  */
-/* maximum message sizes only. The actual message may be */
-/* smaller, and the position of the arguments within the */
-/* message layout may vary from what is presented here.  */
-/* For example, if any of the arguments are variable-    */
-/* sized, and less than the maximum is sent, the data    */
-/* will be packed tight in the actual message to reduce  */
-/* the presence of holes.                                */
-/********************** Caution **************************/
-
-/* typedefs for all requests */
-
-#ifndef __Request__substrated_subsystem__defined
-#define __Request__substrated_subsystem__defined
-
-#ifdef __MigPackStructs
-#pragma pack(push, 4)
-#endif
-typedef struct {
-  mach_msg_header_t Head;
-  /* start of the kernel processed data */
-  mach_msg_body_t msgh_body;
-  mach_msg_port_descriptor_t task;
-  /* end of the kernel processed data */
-  NDR_record_t NDR;
-  mach_vm_address_t source_address;
-  mach_vm_size_t source_size;
-  mach_vm_address_t target_address;
-} __Request__substrated_mark_t __attribute__((unused));
-#ifdef __MigPackStructs
-#pragma pack(pop)
-#endif
-#endif /* !__Request__substrated_subsystem__defined */
-
-/* union of all requests */
-
-#ifndef __RequestUnion__substrated_subsystem__defined
-#define __RequestUnion__substrated_subsystem__defined
-union __RequestUnion__substrated_subsystem {
-  __Request__substrated_mark_t Request_substrated_mark;
-};
-#endif /* !__RequestUnion__substrated_subsystem__defined */
-/* typedefs for all replies */
-
-#ifndef __Reply__substrated_subsystem__defined
-#define __Reply__substrated_subsystem__defined
-
-#ifdef __MigPackStructs
-#pragma pack(push, 4)
-#endif
-typedef struct {
-  mach_msg_header_t Head;
-  NDR_record_t NDR;
-  kern_return_t RetCode;
-  mach_vm_address_t target_address;
-} __Reply__substrated_mark_t __attribute__((unused));
-#ifdef __MigPackStructs
-#pragma pack(pop)
-#endif
-#endif /* !__Reply__substrated_subsystem__defined */
-
-/* union of all replies */
-
-#ifndef __ReplyUnion__substrated_subsystem__defined
-#define __ReplyUnion__substrated_subsystem__defined
-union __ReplyUnion__substrated_subsystem {
-  __Reply__substrated_mark_t Reply_substrated_mark;
-};
-#endif /* !__RequestUnion__substrated_subsystem__defined */
-
-#ifndef subsystem_to_name_map_substrated
-#define subsystem_to_name_map_substrated                                                                               \
-  { "substrated_mark", 9000 }
-#endif
-
-#ifdef __AfterMigUserHeader
-__AfterMigUserHeader
-#endif /* __AfterMigUserHeader */
-
-#endif /* _substrated_user_ */
diff --git a/loader/dobby/source/UserMode/ExecMemory/substrated/mach_interface_support/substrated_server.c b/loader/dobby/source/UserMode/ExecMemory/substrated/mach_interface_support/substrated_server.c
deleted file mode 100644
index d8743080..00000000
--- a/loader/dobby/source/UserMode/ExecMemory/substrated/mach_interface_support/substrated_server.c
+++ /dev/null
@@ -1,247 +0,0 @@
-/*
- * IDENTIFICATION:
- * stub generated Tue Jan  7 03:06:18 2020
- * with a MiG generated by bootstrap_cmds-116
- * OPTIONS: 
- */
-
-/* Module substrated */
-
-#define	__MIG_check__Request__substrated_subsystem__ 1
-
-#include "substrated_server.h"
-
-#ifndef	mig_internal
-#define	mig_internal	static __inline__
-#endif	/* mig_internal */
-
-#ifndef	mig_external
-#define mig_external
-#endif	/* mig_external */
-
-#if	!defined(__MigTypeCheck) && defined(TypeCheck)
-#define	__MigTypeCheck		TypeCheck	/* Legacy setting */
-#endif	/* !defined(__MigTypeCheck) */
-
-#if	!defined(__MigKernelSpecificCode) && defined(_MIG_KERNEL_SPECIFIC_CODE_)
-#define	__MigKernelSpecificCode	_MIG_KERNEL_SPECIFIC_CODE_	/* Legacy setting */
-#endif	/* !defined(__MigKernelSpecificCode) */
-
-#ifndef	LimitCheck
-#define	LimitCheck 0
-#endif	/* LimitCheck */
-
-#ifndef	min
-#define	min(a,b)  ( ((a) < (b))? (a): (b) )
-#endif	/* min */
-
-#if !defined(_WALIGN_)
-#define _WALIGN_(x) (((x) + 3) & ~3)
-#endif /* !defined(_WALIGN_) */
-
-#if !defined(_WALIGNSZ_)
-#define _WALIGNSZ_(x) _WALIGN_(sizeof(x))
-#endif /* !defined(_WALIGNSZ_) */
-
-#ifndef	UseStaticTemplates
-#define	UseStaticTemplates	0
-#endif	/* UseStaticTemplates */
-
-#ifndef MIG_SERVER_ROUTINE
-#define MIG_SERVER_ROUTINE
-#endif
-
-#ifndef	__DeclareRcvRpc
-#define	__DeclareRcvRpc(_NUM_, _NAME_)
-#endif	/* __DeclareRcvRpc */
-
-#ifndef	__BeforeRcvRpc
-#define	__BeforeRcvRpc(_NUM_, _NAME_)
-#endif	/* __BeforeRcvRpc */
-
-#ifndef	__AfterRcvRpc
-#define	__AfterRcvRpc(_NUM_, _NAME_)
-#endif	/* __AfterRcvRpc */
-
-#ifndef	__DeclareRcvSimple
-#define	__DeclareRcvSimple(_NUM_, _NAME_)
-#endif	/* __DeclareRcvSimple */
-
-#ifndef	__BeforeRcvSimple
-#define	__BeforeRcvSimple(_NUM_, _NAME_)
-#endif	/* __BeforeRcvSimple */
-
-#ifndef	__AfterRcvSimple
-#define	__AfterRcvSimple(_NUM_, _NAME_)
-#endif	/* __AfterRcvSimple */
-
-#define novalue void
-
-#define msgh_request_port	msgh_local_port
-#define MACH_MSGH_BITS_REQUEST(bits)	MACH_MSGH_BITS_LOCAL(bits)
-#define msgh_reply_port		msgh_remote_port
-#define MACH_MSGH_BITS_REPLY(bits)	MACH_MSGH_BITS_REMOTE(bits)
-
-#define MIG_RETURN_ERROR(X, code)	{\
-				((mig_reply_error_t *)X)->RetCode = code;\
-				((mig_reply_error_t *)X)->NDR = NDR_record;\
-				return;\
-				}
-
-/* Forward Declarations */
-
-
-mig_internal novalue _Xsubstrated_mark
-	(mach_msg_header_t *InHeadP, mach_msg_header_t *OutHeadP);
-
-
-#if ( __MigTypeCheck )
-#if __MIG_check__Request__substrated_subsystem__
-#if !defined(__MIG_check__Request__substrated_mark_t__defined)
-#define __MIG_check__Request__substrated_mark_t__defined
-
-mig_internal kern_return_t __MIG_check__Request__substrated_mark_t(__attribute__((__unused__)) __Request__substrated_mark_t *In0P)
-{
-
-	typedef __Request__substrated_mark_t __Request;
-#if	__MigTypeCheck
-	if (!(In0P->Head.msgh_bits & MACH_MSGH_BITS_COMPLEX) ||
-	    (In0P->msgh_body.msgh_descriptor_count != 1) ||
-	    (In0P->Head.msgh_size != (mach_msg_size_t)sizeof(__Request)))
-		return MIG_BAD_ARGUMENTS;
-#endif	/* __MigTypeCheck */
-
-#if	__MigTypeCheck
-	if (In0P->task.type != MACH_MSG_PORT_DESCRIPTOR ||
-	    In0P->task.disposition != 17)
-		return MIG_TYPE_ERROR;
-#endif	/* __MigTypeCheck */
-
-	return MACH_MSG_SUCCESS;
-}
-#endif /* !defined(__MIG_check__Request__substrated_mark_t__defined) */
-#endif /* __MIG_check__Request__substrated_subsystem__ */
-#endif /* ( __MigTypeCheck ) */
-
-
-/* Routine substrated_mark */
-mig_internal novalue _Xsubstrated_mark
-	(mach_msg_header_t *InHeadP, mach_msg_header_t *OutHeadP)
-{
-
-#ifdef  __MigPackStructs
-#pragma pack(push, 4)
-#endif
-	typedef struct {
-		mach_msg_header_t Head;
-		/* start of the kernel processed data */
-		mach_msg_body_t msgh_body;
-		mach_msg_port_descriptor_t task;
-		/* end of the kernel processed data */
-		NDR_record_t NDR;
-		mach_vm_address_t source_address;
-		mach_vm_size_t source_size;
-		mach_vm_address_t target_address;
-		mach_msg_trailer_t trailer;
-	} Request __attribute__((unused));
-#ifdef  __MigPackStructs
-#pragma pack(pop)
-#endif
-	typedef __Request__substrated_mark_t __Request;
-	typedef __Reply__substrated_mark_t Reply __attribute__((unused));
-
-	/*
-	 * typedef struct {
-	 * 	mach_msg_header_t Head;
-	 * 	NDR_record_t NDR;
-	 * 	kern_return_t RetCode;
-	 * } mig_reply_error_t;
-	 */
-
-	Request *In0P = (Request *) InHeadP;
-	Reply *OutP = (Reply *) OutHeadP;
-#ifdef	__MIG_check__Request__substrated_mark_t__defined
-	kern_return_t check_result;
-#endif	/* __MIG_check__Request__substrated_mark_t__defined */
-
-	__DeclareRcvRpc(9000, "substrated_mark")
-	__BeforeRcvRpc(9000, "substrated_mark")
-
-#if	defined(__MIG_check__Request__substrated_mark_t__defined)
-	check_result = __MIG_check__Request__substrated_mark_t((__Request *)In0P);
-	if (check_result != MACH_MSG_SUCCESS)
-		{ MIG_RETURN_ERROR(OutP, check_result); }
-#endif	/* defined(__MIG_check__Request__substrated_mark_t__defined) */
-
-	OutP->RetCode = substrated_mark(In0P->Head.msgh_request_port, In0P->task.name, In0P->source_address, In0P->source_size, &In0P->target_address);
-	if (OutP->RetCode != KERN_SUCCESS) {
-		MIG_RETURN_ERROR(OutP, OutP->RetCode);
-	}
-
-	OutP->NDR = NDR_record;
-
-
-	OutP->target_address = In0P->target_address;
-
-	OutP->Head.msgh_size = (mach_msg_size_t)(sizeof(Reply));
-	__AfterRcvRpc(9000, "substrated_mark")
-}
-
-
-
-/* Description of this subsystem, for use in direct RPC */
-const struct substrated_subsystem substrated_subsystem = {
-	substrated_server_routine,
-	9000,
-	9001,
-	(mach_msg_size_t)sizeof(union __ReplyUnion__substrated_subsystem),
-	(vm_address_t)0,
-	{
-          { (mig_impl_routine_t) 0,
-          (mig_stub_routine_t) _Xsubstrated_mark, 7, 0, (routine_arg_descriptor_t)0, (mach_msg_size_t)sizeof(__Reply__substrated_mark_t)},
-	}
-};
-
-mig_external boolean_t substrated_server
-	(mach_msg_header_t *InHeadP, mach_msg_header_t *OutHeadP)
-{
-	/*
-	 * typedef struct {
-	 * 	mach_msg_header_t Head;
-	 * 	NDR_record_t NDR;
-	 * 	kern_return_t RetCode;
-	 * } mig_reply_error_t;
-	 */
-
-	mig_routine_t routine;
-
-	OutHeadP->msgh_bits = MACH_MSGH_BITS(MACH_MSGH_BITS_REPLY(InHeadP->msgh_bits), 0);
-	OutHeadP->msgh_remote_port = InHeadP->msgh_reply_port;
-	/* Minimal size: routine() will update it if different */
-	OutHeadP->msgh_size = (mach_msg_size_t)sizeof(mig_reply_error_t);
-	OutHeadP->msgh_local_port = MACH_PORT_NULL;
-	OutHeadP->msgh_id = InHeadP->msgh_id + 100;
-	OutHeadP->msgh_reserved = 0;
-
-	if ((InHeadP->msgh_id > 9000) || (InHeadP->msgh_id < 9000) ||
-	    ((routine = substrated_subsystem.routine[InHeadP->msgh_id - 9000].stub_routine) == 0)) {
-		((mig_reply_error_t *)OutHeadP)->NDR = NDR_record;
-		((mig_reply_error_t *)OutHeadP)->RetCode = MIG_BAD_ID;
-		return FALSE;
-	}
-	(*routine) (InHeadP, OutHeadP);
-	return TRUE;
-}
-
-mig_external mig_routine_t substrated_server_routine
-	(mach_msg_header_t *InHeadP)
-{
-	int msgh_id;
-
-	msgh_id = InHeadP->msgh_id - 9000;
-
-	if ((msgh_id > 0) || (msgh_id < 0))
-		return 0;
-
-	return substrated_subsystem.routine[msgh_id].stub_routine;
-}
diff --git a/loader/dobby/source/UserMode/ExecMemory/substrated/mach_interface_support/substrated_server.h b/loader/dobby/source/UserMode/ExecMemory/substrated/mach_interface_support/substrated_server.h
deleted file mode 100644
index 605cc6ee..00000000
--- a/loader/dobby/source/UserMode/ExecMemory/substrated/mach_interface_support/substrated_server.h
+++ /dev/null
@@ -1,197 +0,0 @@
-#ifndef _substrated_server_
-#define _substrated_server_
-
-/* Module substrated */
-
-#include <string.h>
-#include <mach/ndr.h>
-#include <mach/boolean.h>
-#include <mach/kern_return.h>
-#include <mach/notify.h>
-#include <mach/mach_types.h>
-#include <mach/message.h>
-#include <mach/mig_errors.h>
-#include <mach/port.h>
-
-/* BEGIN VOUCHER CODE */
-
-#ifndef KERNEL
-#if defined(__has_include)
-#if __has_include(<mach/mig_voucher_support.h>)
-#ifndef USING_VOUCHERS
-#define USING_VOUCHERS
-#endif
-#ifndef __VOUCHER_FORWARD_TYPE_DECLS__
-#define __VOUCHER_FORWARD_TYPE_DECLS__
-#ifdef __cplusplus
-extern "C" {
-#endif
-extern boolean_t voucher_mach_msg_set(mach_msg_header_t *msg) __attribute__((weak_import));
-#ifdef __cplusplus
-}
-#endif
-#endif // __VOUCHER_FORWARD_TYPE_DECLS__
-#endif // __has_include(<mach/mach_voucher_types.h>)
-#endif // __has_include
-#endif // !KERNEL
-
-/* END VOUCHER CODE */
-
-/* BEGIN MIG_STRNCPY_ZEROFILL CODE */
-
-#if defined(__has_include)
-#if __has_include(<mach/mig_strncpy_zerofill_support.h>)
-#ifndef USING_MIG_STRNCPY_ZEROFILL
-#define USING_MIG_STRNCPY_ZEROFILL
-#endif
-#ifndef __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
-#define __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
-#ifdef __cplusplus
-extern "C" {
-#endif
-extern int mig_strncpy_zerofill(char *dest, const char *src, int len) __attribute__((weak_import));
-#ifdef __cplusplus
-}
-#endif
-#endif /* __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__ */
-#endif /* __has_include(<mach/mig_strncpy_zerofill_support.h>) */
-#endif /* __has_include */
-
-/* END MIG_STRNCPY_ZEROFILL CODE */
-
-#ifdef AUTOTEST
-#ifndef FUNCTION_PTR_T
-#define FUNCTION_PTR_T
-typedef void (*function_ptr_t)(mach_port_t, char *, mach_msg_type_number_t);
-typedef struct {
-  char *name;
-  function_ptr_t function;
-} function_table_entry;
-typedef function_table_entry *function_table_t;
-#endif /* FUNCTION_PTR_T */
-#endif /* AUTOTEST */
-
-#ifndef substrated_MSG_COUNT
-#define substrated_MSG_COUNT 1
-#endif /* substrated_MSG_COUNT */
-
-#include <mach/std_types.h>
-#include <mach/mig.h>
-#include <mach/mig.h>
-#include <mach/mach_types.h>
-
-#ifdef __BeforeMigServerHeader
-__BeforeMigServerHeader
-#endif /* __BeforeMigServerHeader */
-
-#ifndef MIG_SERVER_ROUTINE
-#define MIG_SERVER_ROUTINE
-#endif
-
-/* Routine substrated_mark */
-#ifdef mig_external
-    mig_external
-#else
-extern
-#endif /* mig_external */
-        MIG_SERVER_ROUTINE kern_return_t
-        substrated_mark(mach_port_t server, vm_task_entry_t task, mach_vm_address_t source_address,
-                        mach_vm_size_t source_size, mach_vm_address_t *target_address);
-
-#ifdef mig_external
-mig_external
-#else
-extern
-#endif /* mig_external */
-    boolean_t
-    substrated_server(mach_msg_header_t *InHeadP, mach_msg_header_t *OutHeadP);
-
-#ifdef mig_external
-mig_external
-#else
-extern
-#endif /* mig_external */
-    mig_routine_t
-    substrated_server_routine(mach_msg_header_t *InHeadP);
-
-/* Description of this subsystem, for use in direct RPC */
-extern const struct substrated_subsystem {
-  mig_server_routine_t server; /* Server routine */
-  mach_msg_id_t start;         /* Min routine number */
-  mach_msg_id_t end;           /* Max routine number + 1 */
-  unsigned int maxsize;        /* Max msg size */
-  vm_address_t reserved;       /* Reserved */
-  struct routine_descriptor    /*Array of routine descriptors */
-      routine[1];
-} substrated_subsystem;
-
-/* typedefs for all requests */
-
-#ifndef __Request__substrated_subsystem__defined
-#define __Request__substrated_subsystem__defined
-
-#ifdef __MigPackStructs
-#pragma pack(push, 4)
-#endif
-typedef struct {
-  mach_msg_header_t Head;
-  /* start of the kernel processed data */
-  mach_msg_body_t msgh_body;
-  mach_msg_port_descriptor_t task;
-  /* end of the kernel processed data */
-  NDR_record_t NDR;
-  mach_vm_address_t source_address;
-  mach_vm_size_t source_size;
-  mach_vm_address_t target_address;
-} __Request__substrated_mark_t __attribute__((unused));
-#ifdef __MigPackStructs
-#pragma pack(pop)
-#endif
-#endif /* !__Request__substrated_subsystem__defined */
-
-/* union of all requests */
-
-#ifndef __RequestUnion__substrated_subsystem__defined
-#define __RequestUnion__substrated_subsystem__defined
-union __RequestUnion__substrated_subsystem {
-  __Request__substrated_mark_t Request_substrated_mark;
-};
-#endif /* __RequestUnion__substrated_subsystem__defined */
-/* typedefs for all replies */
-
-#ifndef __Reply__substrated_subsystem__defined
-#define __Reply__substrated_subsystem__defined
-
-#ifdef __MigPackStructs
-#pragma pack(push, 4)
-#endif
-typedef struct {
-  mach_msg_header_t Head;
-  NDR_record_t NDR;
-  kern_return_t RetCode;
-  mach_vm_address_t target_address;
-} __Reply__substrated_mark_t __attribute__((unused));
-#ifdef __MigPackStructs
-#pragma pack(pop)
-#endif
-#endif /* !__Reply__substrated_subsystem__defined */
-
-/* union of all replies */
-
-#ifndef __ReplyUnion__substrated_subsystem__defined
-#define __ReplyUnion__substrated_subsystem__defined
-union __ReplyUnion__substrated_subsystem {
-  __Reply__substrated_mark_t Reply_substrated_mark;
-};
-#endif /* __ReplyUnion__substrated_subsystem__defined */
-
-#ifndef subsystem_to_name_map_substrated
-#define subsystem_to_name_map_substrated                                                                               \
-  { "substrated_mark", 9000 }
-#endif
-
-#ifdef __AfterMigServerHeader
-__AfterMigServerHeader
-#endif /* __AfterMigServerHeader */
-
-#endif /* _substrated_server_ */
diff --git a/loader/dobby/source/UserMode/MultiThreadSupport/ThreadSupport.cpp b/loader/dobby/source/UserMode/MultiThreadSupport/ThreadSupport.cpp
deleted file mode 100644
index 30be99c8..00000000
--- a/loader/dobby/source/UserMode/MultiThreadSupport/ThreadSupport.cpp
+++ /dev/null
@@ -1,22 +0,0 @@
-#include "MultiThreadSupport/ThreadSupport.h"
-
-using namespace zz;
-
-OSThread::LocalStorageKey ThreadSupport::thread_callstack_key_ = 0;
-
-// Get current CallStack
-CallStack *ThreadSupport::CurrentThreadCallStack() {
-
-  // TODO: __attribute__((destructor)) is better ?
-  if (!thread_callstack_key_) {
-    thread_callstack_key_ = OSThread::CreateThreadLocalKey();
-  }
-
-  if (OSThread::HasThreadLocal(thread_callstack_key_)) {
-    return static_cast<CallStack *>(OSThread::GetThreadLocal(thread_callstack_key_));
-  } else {
-    CallStack *callstack = new CallStack();
-    OSThread::SetThreadLocal(thread_callstack_key_, callstack);
-    return callstack;
-  }
-}
diff --git a/loader/dobby/source/UserMode/MultiThreadSupport/ThreadSupport.h b/loader/dobby/source/UserMode/MultiThreadSupport/ThreadSupport.h
deleted file mode 100644
index 06d997a1..00000000
--- a/loader/dobby/source/UserMode/MultiThreadSupport/ThreadSupport.h
+++ /dev/null
@@ -1,63 +0,0 @@
-#ifndef USER_MODE_MULTI_THREAD_SUPPORT_H
-#define USER_MODE_MULTI_THREAD_SUPPORT_H
-
-#include <vector>
-#include <map>
-
-#include "dobby_internal.h"
-
-#include "UserMode/Thread/PlatformThread.h"
-
-// StackFrame base in CallStack
-typedef struct _StackFrame {
-  // context between `pre_call` and `post_call`
-  std::map<char *, void *> kv_context;
-  // origin function ret address
-  void *orig_ret;
-} StackFrame;
-
-// (thead) CallStack base in thread
-typedef struct _CallStack {
-  std::vector<StackFrame *> stackframes;
-} CallStack;
-
-// ThreadSupport base on vm_core, support mutipl platforms.
-class ThreadSupport {
-public:
-  // Push stack frame
-  static void PushStackFrame(StackFrame *stackframe) {
-    CallStack *callstack = ThreadSupport::CurrentThreadCallStack();
-    callstack->stackframes.push_back(stackframe);
-  }
-
-  // Pop stack frame
-  static StackFrame *PopStackFrame() {
-    CallStack *callstack = ThreadSupport::CurrentThreadCallStack();
-    StackFrame *stackframe = callstack->stackframes.back();
-    callstack->stackframes.pop_back();
-    return stackframe;
-  }
-
-  // =====
-  static void SetStackFrameContextValue(StackFrame *stackframe, char *key, void *value) {
-    std::map<char *, void *> *kv_context = &stackframe->kv_context;
-    kv_context->insert(std::pair<char *, void *>(key, value));
-  };
-
-  static void *GetStackFrameContextValue(StackFrame *stackframe, char *key) {
-    std::map<char *, void *> kv_context = stackframe->kv_context;
-    std::map<char *, void *>::iterator it;
-    it = kv_context.find(key);
-    if (it != kv_context.end()) {
-      return (void *)it->second;
-    }
-    return NULL;
-  };
-
-  static CallStack *CurrentThreadCallStack();
-
-private:
-  static zz::OSThread::LocalStorageKey thread_callstack_key_;
-};
-
-#endif
diff --git a/loader/dobby/source/UserMode/PlatformUtil/Darwin/ProcessRuntimeUtility.cc b/loader/dobby/source/UserMode/PlatformUtil/Darwin/ProcessRuntimeUtility.cc
deleted file mode 100644
index 9dfb4aab..00000000
--- a/loader/dobby/source/UserMode/PlatformUtil/Darwin/ProcessRuntimeUtility.cc
+++ /dev/null
@@ -1,130 +0,0 @@
-#include "dobby_internal.h"
-
-#include <errno.h>
-#include <signal.h>
-#include <stdarg.h>
-#include <stdlib.h>
-#include <string.h>
-#include <dlfcn.h>
-#include <mach/mach_init.h>
-#include <mach-o/dyld.h>
-#include <mach-o/getsect.h>
-#include <mach-o/dyld_images.h>
-#include <sys/mman.h>
-#include <sys/resource.h>
-#include <sys/sysctl.h>
-#include <sys/time.h>
-#include <sys/types.h>
-
-#include <unistd.h>
-
-#include <AvailabilityMacros.h>
-
-#include <libkern/OSAtomic.h>
-#include <mach/mach.h>
-#include <mach/semaphore.h>
-#include <mach/task.h>
-#include <mach/vm_statistics.h>
-#include <pthread.h>
-#include <semaphore.h>
-
-#include "UnifiedInterface/platform-darwin/mach_vm.h"
-#include "PlatformUtil/ProcessRuntimeUtility.h"
-
-#include <vector>
-
-// ================================================================
-// GetProcessMemoryLayout
-
-static bool memory_region_comparator(MemoryRegion a, MemoryRegion b) {
-  return (a.address < b.address);
-}
-
-std::vector<MemoryRegion> ProcessRuntimeUtility::GetProcessMemoryLayout() {
-  std::vector<MemoryRegion> ProcessMemoryLayout;
-
-  struct vm_region_submap_short_info_64 submap_info;
-  mach_msg_type_number_t count = VM_REGION_SUBMAP_SHORT_INFO_COUNT_64;
-  mach_vm_address_t addr = 0;
-  mach_vm_size_t size = 0;
-  natural_t depth = 0;
-  while (true) {
-    count = VM_REGION_SUBMAP_SHORT_INFO_COUNT_64;
-    kern_return_t kr =
-        mach_vm_region_recurse(mach_task_self(), &addr, &size, &depth, (vm_region_recurse_info_t)&submap_info, &count);
-    if (kr != KERN_SUCCESS) {
-      if (kr == KERN_INVALID_ADDRESS) {
-        break;
-      } else {
-        break;
-      }
-    }
-
-    if (submap_info.is_submap) {
-      depth++;
-    } else {
-      MemoryPermission permission;
-      if ((submap_info.protection & PROT_READ) && (submap_info.protection & PROT_WRITE)) {
-        permission = MemoryPermission::kReadWrite;
-      } else if ((submap_info.protection & PROT_READ) == submap_info.protection) {
-        permission = MemoryPermission::kRead;
-      } else if ((submap_info.protection & PROT_READ) && (submap_info.protection & PROT_EXEC)) {
-        permission = MemoryPermission::kReadExecute;
-      } else {
-        continue;
-      }
-      MemoryRegion region = {(void *)addr, static_cast<size_t>(size), permission};
-#if 0
-      DLOG(0, "%p --- %p", addr, addr + size);
-#endif
-      ProcessMemoryLayout.push_back(region);
-      addr += size;
-    }
-  }
-
-  std::sort(ProcessMemoryLayout.begin(), ProcessMemoryLayout.end(), memory_region_comparator);
-
-  return ProcessMemoryLayout;
-}
-
-// ================================================================
-// GetProcessModuleMap
-
-std::vector<RuntimeModule> ProcessRuntimeUtility::GetProcessModuleMap() {
-  std::vector<RuntimeModule> ProcessModuleMap;
-
-  kern_return_t kr;
-  task_dyld_info_data_t task_dyld_info;
-  mach_msg_type_number_t count = TASK_DYLD_INFO_COUNT;
-  kr = task_info(mach_task_self_, TASK_DYLD_INFO, (task_info_t)&task_dyld_info, &count);
-  if (kr != KERN_SUCCESS) {
-    return ProcessModuleMap;
-  }
-
-  struct dyld_all_image_infos *infos = (struct dyld_all_image_infos *)task_dyld_info.all_image_info_addr;
-  const struct dyld_image_info *infoArray = infos->infoArray;
-  uint32_t infoArrayCount = infos->infoArrayCount;
-
-  for (int i = 0; i < infoArrayCount; ++i) {
-    const struct dyld_image_info *info = &infoArray[i];
-
-    RuntimeModule module = {0};
-    {
-      strncpy(module.path, info->imageFilePath, sizeof(module.path));
-      module.load_address = (void *)info->imageLoadAddress;
-    }
-    ProcessModuleMap.push_back(module);
-  }
-
-  return ProcessModuleMap;
-}
-
-RuntimeModule ProcessRuntimeUtility::GetProcessModule(const char *name) {
-  std::vector<RuntimeModule> ProcessModuleMap = GetProcessModuleMap();
-  for (auto module : ProcessModuleMap) {
-    if (strstr(module.path, name) != 0) {
-      return module;
-    }
-  }
-  return RuntimeModule{0};
-}
diff --git a/loader/dobby/source/UserMode/PlatformUtil/Linux/ProcessRuntimeUtility.cc b/loader/dobby/source/UserMode/PlatformUtil/Linux/ProcessRuntimeUtility.cc
deleted file mode 100644
index 97ca3965..00000000
--- a/loader/dobby/source/UserMode/PlatformUtil/Linux/ProcessRuntimeUtility.cc
+++ /dev/null
@@ -1,231 +0,0 @@
-#include "PlatformUtil/ProcessRuntimeUtility.h"
-
-#include <elf.h>
-#include <dlfcn.h>
-#include <link.h>
-#include <sys/mman.h>
-
-#include <string>
-#include <string.h>
-
-#include <vector>
-
-#define LINE_MAX 2048
-
-// ================================================================
-// GetProcessMemoryLayout
-
-static bool memory_region_comparator(MemoryRegion a, MemoryRegion b) {
-  return ((addr_t)a.address < (addr_t)b.address);
-}
-
-std::vector<MemoryRegion> ProcessRuntimeUtility::GetProcessMemoryLayout() {
-  std::vector<MemoryRegion> ProcessMemoryLayout;
-
-  FILE *fp = fopen("/proc/self/maps", "r");
-  if (fp == nullptr)
-    return ProcessMemoryLayout;
-
-  while (!feof(fp)) {
-    char line_buffer[LINE_MAX + 1];
-    fgets(line_buffer, LINE_MAX, fp);
-
-    // ignore the rest of characters
-    if (strlen(line_buffer) == LINE_MAX && line_buffer[LINE_MAX] != '\n') {
-      // Entry not describing executable data. Skip to end of line to set up
-      // reading the next entry.
-      int c;
-      do {
-        c = getc(fp);
-      } while ((c != EOF) && (c != '\n'));
-      if (c == EOF)
-        break;
-    }
-
-    addr_t region_start, region_end;
-    addr_t region_offset;
-    char permissions[5] = {'\0'}; // Ensure NUL-terminated string.
-    uint8_t dev_major = 0;
-    uint8_t dev_minor = 0;
-    long inode = 0;
-    int path_index = 0;
-
-    // Sample format from man 5 proc:
-    //
-    // address           perms offset  dev   inode   pathname
-    // 08048000-08056000 r-xp 00000000 03:0c 64593   /usr/sbin/gpm
-    //
-    // The final %n term captures the offset in the input string, which is used
-    // to determine the path name. It *does not* increment the return value.
-    // Refer to man 3 sscanf for details.
-    if (sscanf(line_buffer,
-               "%" PRIxPTR "-%" PRIxPTR " %4c "
-               "%" PRIxPTR " %hhx:%hhx %ld %n",
-               &region_start, &region_end, permissions, &region_offset, &dev_major, &dev_minor, &inode,
-               &path_index) < 7) {
-      FATAL("/proc/self/maps parse failed!");
-      fclose(fp);
-      return ProcessMemoryLayout;
-    }
-
-    MemoryPermission permission;
-    if (permissions[0] == 'r' && permissions[1] == 'w') {
-      permission = MemoryPermission::kReadWrite;
-    } else if (permissions[0] == 'r' && permissions[2] == 'x') {
-      permission = MemoryPermission::kReadExecute;
-    } else if (permissions[0] == 'r' && permissions[1] == 'w' && permissions[2] == 'x') {
-      permission = MemoryPermission::kReadWriteExecute;
-    } else {
-      permission = MemoryPermission::kNoAccess;
-    }
-
-#if 0
-      DLOG(0, "%p --- %p", region_start, region_end);
-#endif
-
-    ProcessMemoryLayout.push_back(MemoryRegion{(void *)region_start, region_end - region_start, permission});
-  }
-  std::sort(ProcessMemoryLayout.begin(), ProcessMemoryLayout.end(), memory_region_comparator);
-
-  fclose(fp);
-  return ProcessMemoryLayout;
-}
-
-// ================================================================
-// GetProcessModuleMap
-
-static std::vector<RuntimeModule> get_process_map_with_proc_maps() {
-  std::vector<RuntimeModule> ProcessModuleMap;
-
-  FILE *fp = fopen("/proc/self/maps", "r");
-  if (fp == nullptr)
-    return ProcessModuleMap;
-
-  while (!feof(fp)) {
-    char line_buffer[LINE_MAX + 1];
-    fgets(line_buffer, LINE_MAX, fp);
-
-    // ignore the rest of characters
-    if (strlen(line_buffer) == LINE_MAX && line_buffer[LINE_MAX] != '\n') {
-      // Entry not describing executable data. Skip to end of line to set up
-      // reading the next entry.
-      int c;
-      do {
-        c = getc(fp);
-      } while ((c != EOF) && (c != '\n'));
-      if (c == EOF)
-        break;
-    }
-
-    addr_t region_start, region_end;
-    addr_t region_offset;
-    char permissions[5] = {'\0'}; // Ensure NUL-terminated string.
-    uint8_t dev_major = 0;
-    uint8_t dev_minor = 0;
-    long inode = 0;
-    int path_index = 0;
-
-    // Sample format from man 5 proc:
-    //
-    // address           perms offset  dev   inode   pathname
-    // 08048000-08056000 r-xp 00000000 03:0c 64593   /usr/sbin/gpm
-    //
-    // The final %n term captures the offset in the input string, which is used
-    // to determine the path name. It *does not* increment the return value.
-    // Refer to man 3 sscanf for details.
-    if (sscanf(line_buffer,
-               "%" PRIxPTR "-%" PRIxPTR " %4c "
-               "%" PRIxPTR " %hhx:%hhx %ld %n",
-               &region_start, &region_end, permissions, &region_offset, &dev_major, &dev_minor, &inode,
-               &path_index) < 7) {
-      FATAL("/proc/self/maps parse failed!");
-      fclose(fp);
-      return ProcessModuleMap;
-    }
-
-    // check header section permission
-    if (strcmp(permissions, "r--p") != 0 && strcmp(permissions, "r-xp") != 0)
-      continue;
-
-    // check elf magic number
-    ElfW(Ehdr) *header = (ElfW(Ehdr) *)region_start;
-    if (memcmp(header->e_ident, ELFMAG, SELFMAG) != 0) {
-      continue;
-    }
-
-    char *path_buffer = line_buffer + path_index;
-    if (*path_buffer == 0 || *path_buffer == '\n' || *path_buffer == '[')
-      continue;
-    RuntimeModule module;
-
-    // strip
-    if (path_buffer[strlen(path_buffer) - 1] == '\n') {
-      path_buffer[strlen(path_buffer) - 1] = 0;
-    }
-    strncpy(module.path, path_buffer, sizeof(module.path));
-    module.load_address = (void *)region_start;
-    ProcessModuleMap.push_back(module);
-
-#if 0
-    DLOG(0, "module: %s", module.path);
-#endif
-  }
-
-  fclose(fp);
-  return ProcessModuleMap;
-}
-
-#if defined(__LP64__)
-static std::vector<RuntimeModule> get_process_map_with_linker_iterator() {
-  std::vector<RuntimeModule> ProcessModuleMap;
-
-  static int (*dl_iterate_phdr_ptr)(int (*)(struct dl_phdr_info *, size_t, void *), void *);
-  dl_iterate_phdr_ptr = (__typeof(dl_iterate_phdr_ptr))dlsym(RTLD_DEFAULT, "dl_iterate_phdr");
-  if (dl_iterate_phdr_ptr == NULL) {
-    return ProcessModuleMap;
-  }
-
-  dl_iterate_phdr_ptr(
-      [](dl_phdr_info *info, size_t size, void *data) {
-        RuntimeModule module = {0};
-        if (info->dlpi_name && info->dlpi_name[0] == '/')
-          strcpy(module.path, info->dlpi_name);
-
-        module.load_address = (void *)info->dlpi_addr;
-        for (size_t i = 0; i < info->dlpi_phnum; ++i) {
-          if (info->dlpi_phdr[i].p_type == PT_LOAD) {
-            uintptr_t load_bias = (info->dlpi_phdr[i].p_vaddr - info->dlpi_phdr[i].p_offset);
-            module.load_address = (void *)((addr_t)module.load_address + load_bias);
-            break;
-          }
-        }
-
-        // push to vector
-        auto ProcessModuleMap = reinterpret_cast<std::vector<RuntimeModule> *>(data);
-        ProcessModuleMap->push_back(module);
-        return 0;
-      },
-      (void *)&ProcessModuleMap);
-
-  return ProcessModuleMap;
-}
-#endif
-
-std::vector<RuntimeModule> ProcessRuntimeUtility::GetProcessModuleMap() {
-#if defined(__LP64__) && 0
-  // TODO: won't resolve main binary
-  return get_process_map_with_linker_iterator();
-#else
-  return get_process_map_with_proc_maps();
-#endif
-}
-
-RuntimeModule ProcessRuntimeUtility::GetProcessModule(const char *name) {
-  std::vector<RuntimeModule> ProcessModuleMap = GetProcessModuleMap();
-  for (auto module : ProcessModuleMap) {
-    if (strstr(module.path, name) != 0) {
-      return module;
-    }
-  }
-  return RuntimeModule{0};
-}
\ No newline at end of file
diff --git a/loader/dobby/source/UserMode/PlatformUtil/ProcessRuntimeUtility.h b/loader/dobby/source/UserMode/PlatformUtil/ProcessRuntimeUtility.h
deleted file mode 100644
index 7eed5aef..00000000
--- a/loader/dobby/source/UserMode/PlatformUtil/ProcessRuntimeUtility.h
+++ /dev/null
@@ -1,29 +0,0 @@
-#ifndef GET_PROCESS_MODULE_MAP_H
-#define GET_PROCESS_MODULE_MAP_H
-
-#include "PlatformUnifiedInterface/StdMemory.h"
-
-#include <vector>
-#include <algorithm>
-
-typedef struct _RuntimeModule {
-  char path[1024];
-  void *load_address;
-} RuntimeModule;
-
-class ProcessRuntimeUtility {
-public:
-  // ================================================================
-  // Process Memory
-
-  static std::vector<MemoryRegion> GetProcessMemoryLayout();
-
-  // ================================================================
-  // Process Module
-
-  static std::vector<RuntimeModule> GetProcessModuleMap();
-
-  static RuntimeModule GetProcessModule(const char *name);
-};
-
-#endif
\ No newline at end of file
diff --git a/loader/dobby/source/UserMode/PlatformUtil/Windows/ProcessRuntimeUtility.cc b/loader/dobby/source/UserMode/PlatformUtil/Windows/ProcessRuntimeUtility.cc
deleted file mode 100644
index 02f3cf52..00000000
--- a/loader/dobby/source/UserMode/PlatformUtil/Windows/ProcessRuntimeUtility.cc
+++ /dev/null
@@ -1,85 +0,0 @@
-#include "PlatformUtil/ProcessRuntimeUtility.h"
-
-#include <vector>
-
-#include <windows.h>
-
-#define LINE_MAX 2048
-
-// ================================================================
-// GetProcessMemoryLayout
-
-static bool memory_region_comparator(MemoryRegion a, MemoryRegion b) {
-  return (a.address > b.address);
-}
-
-
-// https://gist.github.com/jedwardsol/9d4fe1fd806043a5767affbd200088ca
-    
-
-std::vector<MemoryRegion> ProcessMemoryLayout;
-std::vector<MemoryRegion> ProcessRuntimeUtility::GetProcessMemoryLayout() {
-  if (!ProcessMemoryLayout.empty()) {
-    ProcessMemoryLayout.clear();
-  }
-  
-  char                        *address{nullptr};
-  MEMORY_BASIC_INFORMATION     region;
-
-  while(VirtualQuery(address,&region,sizeof(region)))
-  {
-    address +=  region.RegionSize;
-    if (!(region.State & (MEM_COMMIT | MEM_RESERVE))) {
-      continue;
-    }
-
-    MemoryPermission permission = MemoryPermission::kNoAccess;
-    auto mask = PAGE_GUARD | PAGE_NOCACHE | PAGE_WRITECOMBINE;
-    switch(region.Protect & ~mask)
-    {
-    case PAGE_NOACCESS:
-    case PAGE_READONLY:
-      break;
-
-    case PAGE_EXECUTE:
-    case PAGE_EXECUTE_READ:
-      permission = MemoryPermission::kReadExecute;
-      break;
-
-    case PAGE_READWRITE:
-    case PAGE_WRITECOPY:
-      permission = MemoryPermission::kReadWrite;
-      break;
-    
-    case PAGE_EXECUTE_READWRITE:
-    case PAGE_EXECUTE_WRITECOPY:
-      permission = MemoryPermission::kReadWriteExecute;
-      break;
-    }
-    
-    ProcessMemoryLayout.push_back(MemoryRegion{(void *)region.BaseAddress, region.RegionSize, permission});
-  }
-  return ProcessMemoryLayout;
-}
-
-// ================================================================
-// GetProcessModuleMap
-
-std::vector<RuntimeModule> ProcessModuleMap;
-
-std::vector<RuntimeModule> ProcessRuntimeUtility::GetProcessModuleMap() {
-  if (!ProcessMemoryLayout.empty()) {
-    ProcessMemoryLayout.clear();
-  }
-  return ProcessModuleMap;
-}
-
-RuntimeModule ProcessRuntimeUtility::GetProcessModule(const char *name) {
-  std::vector<RuntimeModule> ProcessModuleMap = GetProcessModuleMap();
-  for (auto module : ProcessModuleMap) {
-    if (strstr(module.path, name) != 0) {
-      return module;
-    }
-  }
-  return RuntimeModule{0};
-}
\ No newline at end of file
diff --git a/loader/dobby/source/UserMode/Thread/PlatformThread.cc b/loader/dobby/source/UserMode/Thread/PlatformThread.cc
deleted file mode 100644
index 827d1250..00000000
--- a/loader/dobby/source/UserMode/Thread/PlatformThread.cc
+++ /dev/null
@@ -1,19 +0,0 @@
-#include "./PlatformThread.h"
-
-namespace zz {
-int OSThread::GetThreadLocalInt(LocalStorageKey key) {
-  return static_cast<int>(reinterpret_cast<intptr_t>(GetThreadLocal(key)));
-}
-
-void OSThread::SetThreadLocalInt(LocalStorageKey key, int value) {
-  SetThreadLocal(key, reinterpret_cast<void *>(static_cast<intptr_t>(value)));
-}
-
-bool OSThread::HasThreadLocal(LocalStorageKey key) {
-  return GetThreadLocal(key) != nullptr;
-}
-
-void *OSThread::GetExistingThreadLocal(LocalStorageKey key) {
-  return GetThreadLocal(key);
-}
-} // namespace zz
\ No newline at end of file
diff --git a/loader/dobby/source/UserMode/Thread/PlatformThread.h b/loader/dobby/source/UserMode/Thread/PlatformThread.h
deleted file mode 100644
index ea030911..00000000
--- a/loader/dobby/source/UserMode/Thread/PlatformThread.h
+++ /dev/null
@@ -1,36 +0,0 @@
-#ifndef USER_MODE_PLATFORM_THREAD_H
-#define USER_MODE_PLATFORM_THREAD_H
-
-#include "common_header.h"
-
-namespace zz {
-
-class OSThread {
-public:
-  typedef int LocalStorageKey;
-
-  static int GetCurrentProcessId();
-
-  static int GetCurrentThreadId();
-
-  // Thread-local storage.
-  static LocalStorageKey CreateThreadLocalKey();
-
-  static void DeleteThreadLocalKey(LocalStorageKey key);
-
-  static void *GetThreadLocal(LocalStorageKey key);
-
-  static int GetThreadLocalInt(LocalStorageKey key);
-
-  static void SetThreadLocal(LocalStorageKey key, void *value);
-
-  static void SetThreadLocalInt(LocalStorageKey key, int value);
-
-  static bool HasThreadLocal(LocalStorageKey key);
-
-  static void *GetExistingThreadLocal(LocalStorageKey key);
-};
-
-} // namespace zz
-
-#endif
\ No newline at end of file
diff --git a/loader/dobby/source/UserMode/Thread/platform-thread-posix.cc b/loader/dobby/source/UserMode/Thread/platform-thread-posix.cc
deleted file mode 100644
index 486618c7..00000000
--- a/loader/dobby/source/UserMode/Thread/platform-thread-posix.cc
+++ /dev/null
@@ -1,71 +0,0 @@
-#include "Thread/PlatformThread.h"
-
-#include <unistd.h>  // getpid
-#include <pthread.h> // pthread
-#include <sys/syscall.h>
-
-using namespace zz;
-
-int OSThread::GetCurrentProcessId() {
-  return static_cast<int>(getpid());
-}
-
-int OSThread::GetCurrentThreadId() {
-#if defined(__APPLE__)
-  return static_cast<int>(pthread_mach_thread_np(pthread_self()));
-#elif defined(__ANDROID__)
-  return static_cast<int>(gettid());
-#elif defined(__linux__)
-  return static_cast<int>(syscall(__NR_gettid));
-#else
-  return static_cast<int>(reinterpret_cast<intptr_t>(pthread_self()));
-#endif
-}
-
-static OSThread::LocalStorageKey PthreadKeyToLocalKey(pthread_key_t pthread_key) {
-#if defined(__cygwin__)
-  // We need to cast pthread_key_t to OSThread::LocalStorageKey in two steps
-  // because pthread_key_t is a pointer type on Cygwin. This will probably not
-  // work on 64-bit platforms, but Cygwin doesn't support 64-bit anyway.
-  assert(sizeof(OSThread::LocalStorageKey) == sizeof(pthread_key_t));
-  intptr_t ptr_key = reinterpret_cast<intptr_t>(pthread_key);
-  return static_cast<OSThread::LocalStorageKey>(ptr_key);
-#else
-  return static_cast<OSThread::LocalStorageKey>(pthread_key);
-#endif
-}
-
-static pthread_key_t LocalKeyToPthreadKey(OSThread::LocalStorageKey local_key) {
-#if defined(__cygwin__)
-  assert(sizeof(OSThread::LocalStorageKey) == sizeof(pthread_key_t));
-  intptr_t ptr_key = static_cast<intptr_t>(local_key);
-  return reinterpret_cast<pthread_key_t>(ptr_key);
-#else
-  return static_cast<pthread_key_t>(local_key);
-#endif
-}
-
-OSThread::LocalStorageKey OSThread::CreateThreadLocalKey() {
-  pthread_key_t key;
-  int result = pthread_key_create(&key, nullptr);
-  DCHECK_EQ(0, result);
-  LocalStorageKey local_key = PthreadKeyToLocalKey(key);
-  return local_key;
-}
-
-void OSThread::DeleteThreadLocalKey(LocalStorageKey key) {
-  pthread_key_t pthread_key = LocalKeyToPthreadKey(key);
-  int result = pthread_key_delete(pthread_key);
-  DCHECK_EQ(0, result);
-}
-
-void *OSThread::GetThreadLocal(LocalStorageKey key) {
-  pthread_key_t pthread_key = LocalKeyToPthreadKey(key);
-  return pthread_getspecific(pthread_key);
-}
-
-void OSThread::SetThreadLocal(LocalStorageKey key, void *value) {
-  pthread_key_t pthread_key = LocalKeyToPthreadKey(key);
-  int result = pthread_setspecific(pthread_key, value);
-  DCHECK_EQ(0, result);
-}
diff --git a/loader/dobby/source/UserMode/Thread/platform-thread-windows.cc b/loader/dobby/source/UserMode/Thread/platform-thread-windows.cc
deleted file mode 100644
index 1428bb06..00000000
--- a/loader/dobby/source/UserMode/Thread/platform-thread-windows.cc
+++ /dev/null
@@ -1,25 +0,0 @@
-#include "PlatformThread.h"
-
-using namespace zz;
-
-int OSThread::GetCurrentProcessId() {
-  return 0;
-}
-
-int OSThread::GetCurrentThreadId() {
-  return 0;
-}
-
-OSThread::LocalStorageKey OSThread::CreateThreadLocalKey() {
-  return 0;
-}
-
-void OSThread::DeleteThreadLocalKey(LocalStorageKey key) {
-}
-
-void *OSThread::GetThreadLocal(LocalStorageKey key) {
-  return NULL;
-}
-
-void OSThread::SetThreadLocal(LocalStorageKey key, void *value) {
-}
diff --git a/loader/dobby/source/UserMode/UnifiedInterface/platform-darwin/mach_vm.h b/loader/dobby/source/UserMode/UnifiedInterface/platform-darwin/mach_vm.h
deleted file mode 100644
index a9cab322..00000000
--- a/loader/dobby/source/UserMode/UnifiedInterface/platform-darwin/mach_vm.h
+++ /dev/null
@@ -1,933 +0,0 @@
-#ifndef _mach_vm_user_
-#define _mach_vm_user_
-
-/* Module mach_vm */
-
-#include <mach/boolean.h>
-#include <mach/kern_return.h>
-#include <mach/mach_types.h>
-#include <mach/message.h>
-#include <mach/mig_errors.h>
-#include <mach/ndr.h>
-#include <mach/notify.h>
-#include <mach/port.h>
-#include <string.h>
-
-/* BEGIN MIG_STRNCPY_ZEROFILL CODE */
-
-#if defined(__has_include)
-#if __has_include(<mach/mig_strncpy_zerofill_support.h>)
-#ifndef USING_MIG_STRNCPY_ZEROFILL
-#define USING_MIG_STRNCPY_ZEROFILL
-#endif
-#ifndef __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
-#define __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
-#ifdef __cplusplus
-extern "C" {
-#endif
-extern int mig_strncpy_zerofill(char *dest, const char *src, int len) __attribute__((weak_import));
-#ifdef __cplusplus
-}
-#endif
-#endif /* __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__ */
-#endif /* __has_include(<mach/mig_strncpy_zerofill_support.h>) */
-#endif /* __has_include */
-
-/* END MIG_STRNCPY_ZEROFILL CODE */
-
-#ifdef AUTOTEST
-#ifndef FUNCTION_PTR_T
-#define FUNCTION_PTR_T
-typedef void (*function_ptr_t)(mach_port_t, char *, mach_msg_type_number_t);
-typedef struct {
-  char *name;
-  function_ptr_t function;
-} function_table_entry;
-typedef function_table_entry *function_table_t;
-#endif /* FUNCTION_PTR_T */
-#endif /* AUTOTEST */
-
-#ifndef mach_vm_MSG_COUNT
-#define mach_vm_MSG_COUNT 20
-#endif /* mach_vm_MSG_COUNT */
-
-#include <mach/mach_types.h>
-#include <mach/mig.h>
-#include <mach/std_types.h>
-#include <mach_debug/mach_debug_types.h>
-
-#ifdef __BeforeMigUserHeader
-__BeforeMigUserHeader
-#endif /* __BeforeMigUserHeader */
-
-#include <sys/cdefs.h>
-
-    __BEGIN_DECLS
-
-/* Routine mach_vm_allocate */
-#ifdef mig_external
-        mig_external
-#else
-extern
-#endif /* mig_external */
-            kern_return_t
-            mach_vm_allocate(vm_map_t target, mach_vm_address_t *address, mach_vm_size_t size, int flags);
-
-/* Routine mach_vm_deallocate */
-#ifdef mig_external
-mig_external
-#else
-extern
-#endif /* mig_external */
-    kern_return_t
-    mach_vm_deallocate(vm_map_t target, mach_vm_address_t address, mach_vm_size_t size);
-
-/* Routine mach_vm_protect */
-#ifdef mig_external
-mig_external
-#else
-extern
-#endif /* mig_external */
-    kern_return_t
-    mach_vm_protect(vm_map_t target_task, mach_vm_address_t address, mach_vm_size_t size, boolean_t set_maximum,
-                    vm_prot_t new_protection);
-
-/* Routine mach_vm_inherit */
-#ifdef mig_external
-mig_external
-#else
-extern
-#endif /* mig_external */
-    kern_return_t
-    mach_vm_inherit(vm_map_t target_task, mach_vm_address_t address, mach_vm_size_t size, vm_inherit_t new_inheritance);
-
-/* Routine mach_vm_read */
-#ifdef mig_external
-mig_external
-#else
-extern
-#endif /* mig_external */
-    kern_return_t
-    mach_vm_read(vm_map_t target_task, mach_vm_address_t address, mach_vm_size_t size, vm_offset_t *data,
-                 mach_msg_type_number_t *dataCnt);
-
-/* Routine mach_vm_read_list */
-#ifdef mig_external
-mig_external
-#else
-extern
-#endif /* mig_external */
-    kern_return_t
-    mach_vm_read_list(vm_map_t target_task, mach_vm_read_entry_t data_list, natural_t count);
-
-/* Routine mach_vm_write */
-#ifdef mig_external
-mig_external
-#else
-extern
-#endif /* mig_external */
-    kern_return_t
-    mach_vm_write(vm_map_t target_task, mach_vm_address_t address, vm_offset_t data, mach_msg_type_number_t dataCnt);
-
-/* Routine mach_vm_copy */
-#ifdef mig_external
-mig_external
-#else
-extern
-#endif /* mig_external */
-    kern_return_t
-    mach_vm_copy(vm_map_t target_task, mach_vm_address_t source_address, mach_vm_size_t size,
-                 mach_vm_address_t dest_address);
-
-/* Routine mach_vm_read_overwrite */
-#ifdef mig_external
-mig_external
-#else
-extern
-#endif /* mig_external */
-    kern_return_t
-    mach_vm_read_overwrite(vm_map_t target_task, mach_vm_address_t address, mach_vm_size_t size, mach_vm_address_t data,
-                           mach_vm_size_t *outsize);
-
-/* Routine mach_vm_msync */
-#ifdef mig_external
-mig_external
-#else
-extern
-#endif /* mig_external */
-    kern_return_t
-    mach_vm_msync(vm_map_t target_task, mach_vm_address_t address, mach_vm_size_t size, vm_sync_t sync_flags);
-
-/* Routine mach_vm_behavior_set */
-#ifdef mig_external
-mig_external
-#else
-extern
-#endif /* mig_external */
-    kern_return_t
-    mach_vm_behavior_set(vm_map_t target_task, mach_vm_address_t address, mach_vm_size_t size,
-                         vm_behavior_t new_behavior);
-
-/* Routine mach_vm_map */
-#ifdef mig_external
-mig_external
-#else
-extern
-#endif /* mig_external */
-    kern_return_t
-    mach_vm_map(vm_map_t target_task, mach_vm_address_t *address, mach_vm_size_t size, mach_vm_offset_t mask, int flags,
-                mem_entry_name_port_t object, memory_object_offset_t offset, boolean_t copy, vm_prot_t curr_protection,
-                vm_prot_t max_protection, vm_inherit_t inheritance);
-
-/* Routine mach_vm_machine_attribute */
-#ifdef mig_external
-mig_external
-#else
-extern
-#endif /* mig_external */
-    kern_return_t
-    mach_vm_machine_attribute(vm_map_t target_task, mach_vm_address_t address, mach_vm_size_t size,
-                              vm_machine_attribute_t attribute, vm_machine_attribute_val_t *value);
-
-/* Routine mach_vm_remap */
-#ifdef mig_external
-mig_external
-#else
-extern
-#endif /* mig_external */
-    kern_return_t
-    mach_vm_remap(vm_map_t target_task, mach_vm_address_t *target_address, mach_vm_size_t size, mach_vm_offset_t mask,
-                  int flags, vm_map_t src_task, mach_vm_address_t src_address, boolean_t copy,
-                  vm_prot_t *curr_protection, vm_prot_t *max_protection, vm_inherit_t inheritance);
-
-/* Routine mach_vm_page_query */
-#ifdef mig_external
-mig_external
-#else
-extern
-#endif /* mig_external */
-    kern_return_t
-    mach_vm_page_query(vm_map_t target_map, mach_vm_offset_t offset, integer_t *disposition, integer_t *ref_count);
-
-/* Routine mach_vm_region_recurse */
-#ifdef mig_external
-mig_external
-#else
-extern
-#endif /* mig_external */
-    kern_return_t
-    mach_vm_region_recurse(vm_map_t target_task, mach_vm_address_t *address, mach_vm_size_t *size,
-                           natural_t *nesting_depth, vm_region_recurse_info_t info, mach_msg_type_number_t *infoCnt);
-
-/* Routine mach_vm_region */
-#ifdef mig_external
-mig_external
-#else
-extern
-#endif /* mig_external */
-    kern_return_t
-    mach_vm_region(vm_map_t target_task, mach_vm_address_t *address, mach_vm_size_t *size, vm_region_flavor_t flavor,
-                   vm_region_info_t info, mach_msg_type_number_t *infoCnt, mach_port_t *object_name);
-
-/* Routine _mach_make_memory_entry */
-#ifdef mig_external
-mig_external
-#else
-extern
-#endif /* mig_external */
-    kern_return_t
-    _mach_make_memory_entry(vm_map_t target_task, memory_object_size_t *size, memory_object_offset_t offset,
-                            vm_prot_t permission, mem_entry_name_port_t *object_handle,
-                            mem_entry_name_port_t parent_handle);
-
-/* Routine mach_vm_purgable_control */
-#ifdef mig_external
-mig_external
-#else
-extern
-#endif /* mig_external */
-    kern_return_t
-    mach_vm_purgable_control(vm_map_t target_task, mach_vm_address_t address, vm_purgable_t control, int *state);
-
-/* Routine mach_vm_page_info */
-#ifdef mig_external
-mig_external
-#else
-extern
-#endif /* mig_external */
-    kern_return_t
-    mach_vm_page_info(vm_map_t target_task, mach_vm_address_t address, vm_page_info_flavor_t flavor,
-                      vm_page_info_t info, mach_msg_type_number_t *infoCnt);
-
-__END_DECLS
-
-/********************** Caution **************************/
-/* The following data types should be used to calculate  */
-/* maximum message sizes only. The actual message may be */
-/* smaller, and the position of the arguments within the */
-/* message layout may vary from what is presented here.  */
-/* For example, if any of the arguments are variable-    */
-/* sized, and less than the maximum is sent, the data    */
-/* will be packed tight in the actual message to reduce  */
-/* the presence of holes.                                */
-/********************** Caution **************************/
-
-/* typedefs for all requests */
-
-#ifndef __Request__mach_vm_subsystem__defined
-#define __Request__mach_vm_subsystem__defined
-
-#ifdef __MigPackStructs
-#pragma pack(4)
-#endif
-typedef struct {
-  mach_msg_header_t Head;
-  NDR_record_t NDR;
-  mach_vm_address_t address;
-  mach_vm_size_t size;
-  int flags;
-} __Request__mach_vm_allocate_t __attribute__((unused));
-#ifdef __MigPackStructs
-#pragma pack()
-#endif
-
-#ifdef __MigPackStructs
-#pragma pack(4)
-#endif
-typedef struct {
-  mach_msg_header_t Head;
-  NDR_record_t NDR;
-  mach_vm_address_t address;
-  mach_vm_size_t size;
-} __Request__mach_vm_deallocate_t __attribute__((unused));
-#ifdef __MigPackStructs
-#pragma pack()
-#endif
-
-#ifdef __MigPackStructs
-#pragma pack(4)
-#endif
-typedef struct {
-  mach_msg_header_t Head;
-  NDR_record_t NDR;
-  mach_vm_address_t address;
-  mach_vm_size_t size;
-  boolean_t set_maximum;
-  vm_prot_t new_protection;
-} __Request__mach_vm_protect_t __attribute__((unused));
-#ifdef __MigPackStructs
-#pragma pack()
-#endif
-
-#ifdef __MigPackStructs
-#pragma pack(4)
-#endif
-typedef struct {
-  mach_msg_header_t Head;
-  NDR_record_t NDR;
-  mach_vm_address_t address;
-  mach_vm_size_t size;
-  vm_inherit_t new_inheritance;
-} __Request__mach_vm_inherit_t __attribute__((unused));
-#ifdef __MigPackStructs
-#pragma pack()
-#endif
-
-#ifdef __MigPackStructs
-#pragma pack(4)
-#endif
-typedef struct {
-  mach_msg_header_t Head;
-  NDR_record_t NDR;
-  mach_vm_address_t address;
-  mach_vm_size_t size;
-} __Request__mach_vm_read_t __attribute__((unused));
-#ifdef __MigPackStructs
-#pragma pack()
-#endif
-
-#ifdef __MigPackStructs
-#pragma pack(4)
-#endif
-typedef struct {
-  mach_msg_header_t Head;
-  NDR_record_t NDR;
-  mach_vm_read_entry_t data_list;
-  natural_t count;
-} __Request__mach_vm_read_list_t __attribute__((unused));
-#ifdef __MigPackStructs
-#pragma pack()
-#endif
-
-#ifdef __MigPackStructs
-#pragma pack(4)
-#endif
-typedef struct {
-  mach_msg_header_t Head;
-  /* start of the kernel processed data */
-  mach_msg_body_t msgh_body;
-  mach_msg_ool_descriptor_t data;
-  /* end of the kernel processed data */
-  NDR_record_t NDR;
-  mach_vm_address_t address;
-  mach_msg_type_number_t dataCnt;
-} __Request__mach_vm_write_t __attribute__((unused));
-#ifdef __MigPackStructs
-#pragma pack()
-#endif
-
-#ifdef __MigPackStructs
-#pragma pack(4)
-#endif
-typedef struct {
-  mach_msg_header_t Head;
-  NDR_record_t NDR;
-  mach_vm_address_t source_address;
-  mach_vm_size_t size;
-  mach_vm_address_t dest_address;
-} __Request__mach_vm_copy_t __attribute__((unused));
-#ifdef __MigPackStructs
-#pragma pack()
-#endif
-
-#ifdef __MigPackStructs
-#pragma pack(4)
-#endif
-typedef struct {
-  mach_msg_header_t Head;
-  NDR_record_t NDR;
-  mach_vm_address_t address;
-  mach_vm_size_t size;
-  mach_vm_address_t data;
-} __Request__mach_vm_read_overwrite_t __attribute__((unused));
-#ifdef __MigPackStructs
-#pragma pack()
-#endif
-
-#ifdef __MigPackStructs
-#pragma pack(4)
-#endif
-typedef struct {
-  mach_msg_header_t Head;
-  NDR_record_t NDR;
-  mach_vm_address_t address;
-  mach_vm_size_t size;
-  vm_sync_t sync_flags;
-} __Request__mach_vm_msync_t __attribute__((unused));
-#ifdef __MigPackStructs
-#pragma pack()
-#endif
-
-#ifdef __MigPackStructs
-#pragma pack(4)
-#endif
-typedef struct {
-  mach_msg_header_t Head;
-  NDR_record_t NDR;
-  mach_vm_address_t address;
-  mach_vm_size_t size;
-  vm_behavior_t new_behavior;
-} __Request__mach_vm_behavior_set_t __attribute__((unused));
-#ifdef __MigPackStructs
-#pragma pack()
-#endif
-
-#ifdef __MigPackStructs
-#pragma pack(4)
-#endif
-typedef struct {
-  mach_msg_header_t Head;
-  /* start of the kernel processed data */
-  mach_msg_body_t msgh_body;
-  mach_msg_port_descriptor_t object;
-  /* end of the kernel processed data */
-  NDR_record_t NDR;
-  mach_vm_address_t address;
-  mach_vm_size_t size;
-  mach_vm_offset_t mask;
-  int flags;
-  memory_object_offset_t offset;
-  boolean_t copy;
-  vm_prot_t curr_protection;
-  vm_prot_t max_protection;
-  vm_inherit_t inheritance;
-} __Request__mach_vm_map_t __attribute__((unused));
-#ifdef __MigPackStructs
-#pragma pack()
-#endif
-
-#ifdef __MigPackStructs
-#pragma pack(4)
-#endif
-typedef struct {
-  mach_msg_header_t Head;
-  NDR_record_t NDR;
-  mach_vm_address_t address;
-  mach_vm_size_t size;
-  vm_machine_attribute_t attribute;
-  vm_machine_attribute_val_t value;
-} __Request__mach_vm_machine_attribute_t __attribute__((unused));
-#ifdef __MigPackStructs
-#pragma pack()
-#endif
-
-#ifdef __MigPackStructs
-#pragma pack(4)
-#endif
-typedef struct {
-  mach_msg_header_t Head;
-  /* start of the kernel processed data */
-  mach_msg_body_t msgh_body;
-  mach_msg_port_descriptor_t src_task;
-  /* end of the kernel processed data */
-  NDR_record_t NDR;
-  mach_vm_address_t target_address;
-  mach_vm_size_t size;
-  mach_vm_offset_t mask;
-  int flags;
-  mach_vm_address_t src_address;
-  boolean_t copy;
-  vm_inherit_t inheritance;
-} __Request__mach_vm_remap_t __attribute__((unused));
-#ifdef __MigPackStructs
-#pragma pack()
-#endif
-
-#ifdef __MigPackStructs
-#pragma pack(4)
-#endif
-typedef struct {
-  mach_msg_header_t Head;
-  NDR_record_t NDR;
-  mach_vm_offset_t offset;
-} __Request__mach_vm_page_query_t __attribute__((unused));
-#ifdef __MigPackStructs
-#pragma pack()
-#endif
-
-#ifdef __MigPackStructs
-#pragma pack(4)
-#endif
-typedef struct {
-  mach_msg_header_t Head;
-  NDR_record_t NDR;
-  mach_vm_address_t address;
-  natural_t nesting_depth;
-  mach_msg_type_number_t infoCnt;
-} __Request__mach_vm_region_recurse_t __attribute__((unused));
-#ifdef __MigPackStructs
-#pragma pack()
-#endif
-
-#ifdef __MigPackStructs
-#pragma pack(4)
-#endif
-typedef struct {
-  mach_msg_header_t Head;
-  NDR_record_t NDR;
-  mach_vm_address_t address;
-  vm_region_flavor_t flavor;
-  mach_msg_type_number_t infoCnt;
-} __Request__mach_vm_region_t __attribute__((unused));
-#ifdef __MigPackStructs
-#pragma pack()
-#endif
-
-#ifdef __MigPackStructs
-#pragma pack(4)
-#endif
-typedef struct {
-  mach_msg_header_t Head;
-  /* start of the kernel processed data */
-  mach_msg_body_t msgh_body;
-  mach_msg_port_descriptor_t parent_handle;
-  /* end of the kernel processed data */
-  NDR_record_t NDR;
-  memory_object_size_t size;
-  memory_object_offset_t offset;
-  vm_prot_t permission;
-} __Request___mach_make_memory_entry_t __attribute__((unused));
-#ifdef __MigPackStructs
-#pragma pack()
-#endif
-
-#ifdef __MigPackStructs
-#pragma pack(4)
-#endif
-typedef struct {
-  mach_msg_header_t Head;
-  NDR_record_t NDR;
-  mach_vm_address_t address;
-  vm_purgable_t control;
-  int state;
-} __Request__mach_vm_purgable_control_t __attribute__((unused));
-#ifdef __MigPackStructs
-#pragma pack()
-#endif
-
-#ifdef __MigPackStructs
-#pragma pack(4)
-#endif
-typedef struct {
-  mach_msg_header_t Head;
-  NDR_record_t NDR;
-  mach_vm_address_t address;
-  vm_page_info_flavor_t flavor;
-  mach_msg_type_number_t infoCnt;
-} __Request__mach_vm_page_info_t __attribute__((unused));
-#ifdef __MigPackStructs
-#pragma pack()
-#endif
-#endif /* !__Request__mach_vm_subsystem__defined */
-
-/* union of all requests */
-
-#ifndef __RequestUnion__mach_vm_subsystem__defined
-#define __RequestUnion__mach_vm_subsystem__defined
-union __RequestUnion__mach_vm_subsystem {
-  __Request__mach_vm_allocate_t Request_mach_vm_allocate;
-  __Request__mach_vm_deallocate_t Request_mach_vm_deallocate;
-  __Request__mach_vm_protect_t Request_mach_vm_protect;
-  __Request__mach_vm_inherit_t Request_mach_vm_inherit;
-  __Request__mach_vm_read_t Request_mach_vm_read;
-  __Request__mach_vm_read_list_t Request_mach_vm_read_list;
-  __Request__mach_vm_write_t Request_mach_vm_write;
-  __Request__mach_vm_copy_t Request_mach_vm_copy;
-  __Request__mach_vm_read_overwrite_t Request_mach_vm_read_overwrite;
-  __Request__mach_vm_msync_t Request_mach_vm_msync;
-  __Request__mach_vm_behavior_set_t Request_mach_vm_behavior_set;
-  __Request__mach_vm_map_t Request_mach_vm_map;
-  __Request__mach_vm_machine_attribute_t Request_mach_vm_machine_attribute;
-  __Request__mach_vm_remap_t Request_mach_vm_remap;
-  __Request__mach_vm_page_query_t Request_mach_vm_page_query;
-  __Request__mach_vm_region_recurse_t Request_mach_vm_region_recurse;
-  __Request__mach_vm_region_t Request_mach_vm_region;
-  __Request___mach_make_memory_entry_t Request__mach_make_memory_entry;
-  __Request__mach_vm_purgable_control_t Request_mach_vm_purgable_control;
-  __Request__mach_vm_page_info_t Request_mach_vm_page_info;
-};
-#endif /* !__RequestUnion__mach_vm_subsystem__defined */
-/* typedefs for all replies */
-
-#ifndef __Reply__mach_vm_subsystem__defined
-#define __Reply__mach_vm_subsystem__defined
-
-#ifdef __MigPackStructs
-#pragma pack(4)
-#endif
-typedef struct {
-  mach_msg_header_t Head;
-  NDR_record_t NDR;
-  kern_return_t RetCode;
-  mach_vm_address_t address;
-} __Reply__mach_vm_allocate_t __attribute__((unused));
-#ifdef __MigPackStructs
-#pragma pack()
-#endif
-
-#ifdef __MigPackStructs
-#pragma pack(4)
-#endif
-typedef struct {
-  mach_msg_header_t Head;
-  NDR_record_t NDR;
-  kern_return_t RetCode;
-} __Reply__mach_vm_deallocate_t __attribute__((unused));
-#ifdef __MigPackStructs
-#pragma pack()
-#endif
-
-#ifdef __MigPackStructs
-#pragma pack(4)
-#endif
-typedef struct {
-  mach_msg_header_t Head;
-  NDR_record_t NDR;
-  kern_return_t RetCode;
-} __Reply__mach_vm_protect_t __attribute__((unused));
-#ifdef __MigPackStructs
-#pragma pack()
-#endif
-
-#ifdef __MigPackStructs
-#pragma pack(4)
-#endif
-typedef struct {
-  mach_msg_header_t Head;
-  NDR_record_t NDR;
-  kern_return_t RetCode;
-} __Reply__mach_vm_inherit_t __attribute__((unused));
-#ifdef __MigPackStructs
-#pragma pack()
-#endif
-
-#ifdef __MigPackStructs
-#pragma pack(4)
-#endif
-typedef struct {
-  mach_msg_header_t Head;
-  /* start of the kernel processed data */
-  mach_msg_body_t msgh_body;
-  mach_msg_ool_descriptor_t data;
-  /* end of the kernel processed data */
-  NDR_record_t NDR;
-  mach_msg_type_number_t dataCnt;
-} __Reply__mach_vm_read_t __attribute__((unused));
-#ifdef __MigPackStructs
-#pragma pack()
-#endif
-
-#ifdef __MigPackStructs
-#pragma pack(4)
-#endif
-typedef struct {
-  mach_msg_header_t Head;
-  NDR_record_t NDR;
-  kern_return_t RetCode;
-  mach_vm_read_entry_t data_list;
-} __Reply__mach_vm_read_list_t __attribute__((unused));
-#ifdef __MigPackStructs
-#pragma pack()
-#endif
-
-#ifdef __MigPackStructs
-#pragma pack(4)
-#endif
-typedef struct {
-  mach_msg_header_t Head;
-  NDR_record_t NDR;
-  kern_return_t RetCode;
-} __Reply__mach_vm_write_t __attribute__((unused));
-#ifdef __MigPackStructs
-#pragma pack()
-#endif
-
-#ifdef __MigPackStructs
-#pragma pack(4)
-#endif
-typedef struct {
-  mach_msg_header_t Head;
-  NDR_record_t NDR;
-  kern_return_t RetCode;
-} __Reply__mach_vm_copy_t __attribute__((unused));
-#ifdef __MigPackStructs
-#pragma pack()
-#endif
-
-#ifdef __MigPackStructs
-#pragma pack(4)
-#endif
-typedef struct {
-  mach_msg_header_t Head;
-  NDR_record_t NDR;
-  kern_return_t RetCode;
-  mach_vm_size_t outsize;
-} __Reply__mach_vm_read_overwrite_t __attribute__((unused));
-#ifdef __MigPackStructs
-#pragma pack()
-#endif
-
-#ifdef __MigPackStructs
-#pragma pack(4)
-#endif
-typedef struct {
-  mach_msg_header_t Head;
-  NDR_record_t NDR;
-  kern_return_t RetCode;
-} __Reply__mach_vm_msync_t __attribute__((unused));
-#ifdef __MigPackStructs
-#pragma pack()
-#endif
-
-#ifdef __MigPackStructs
-#pragma pack(4)
-#endif
-typedef struct {
-  mach_msg_header_t Head;
-  NDR_record_t NDR;
-  kern_return_t RetCode;
-} __Reply__mach_vm_behavior_set_t __attribute__((unused));
-#ifdef __MigPackStructs
-#pragma pack()
-#endif
-
-#ifdef __MigPackStructs
-#pragma pack(4)
-#endif
-typedef struct {
-  mach_msg_header_t Head;
-  NDR_record_t NDR;
-  kern_return_t RetCode;
-  mach_vm_address_t address;
-} __Reply__mach_vm_map_t __attribute__((unused));
-#ifdef __MigPackStructs
-#pragma pack()
-#endif
-
-#ifdef __MigPackStructs
-#pragma pack(4)
-#endif
-typedef struct {
-  mach_msg_header_t Head;
-  NDR_record_t NDR;
-  kern_return_t RetCode;
-  vm_machine_attribute_val_t value;
-} __Reply__mach_vm_machine_attribute_t __attribute__((unused));
-#ifdef __MigPackStructs
-#pragma pack()
-#endif
-
-#ifdef __MigPackStructs
-#pragma pack(4)
-#endif
-typedef struct {
-  mach_msg_header_t Head;
-  NDR_record_t NDR;
-  kern_return_t RetCode;
-  mach_vm_address_t target_address;
-  vm_prot_t curr_protection;
-  vm_prot_t max_protection;
-} __Reply__mach_vm_remap_t __attribute__((unused));
-#ifdef __MigPackStructs
-#pragma pack()
-#endif
-
-#ifdef __MigPackStructs
-#pragma pack(4)
-#endif
-typedef struct {
-  mach_msg_header_t Head;
-  NDR_record_t NDR;
-  kern_return_t RetCode;
-  integer_t disposition;
-  integer_t ref_count;
-} __Reply__mach_vm_page_query_t __attribute__((unused));
-#ifdef __MigPackStructs
-#pragma pack()
-#endif
-
-#ifdef __MigPackStructs
-#pragma pack(4)
-#endif
-typedef struct {
-  mach_msg_header_t Head;
-  NDR_record_t NDR;
-  kern_return_t RetCode;
-  mach_vm_address_t address;
-  mach_vm_size_t size;
-  natural_t nesting_depth;
-  mach_msg_type_number_t infoCnt;
-  int info[19];
-} __Reply__mach_vm_region_recurse_t __attribute__((unused));
-#ifdef __MigPackStructs
-#pragma pack()
-#endif
-
-#ifdef __MigPackStructs
-#pragma pack(4)
-#endif
-typedef struct {
-  mach_msg_header_t Head;
-  /* start of the kernel processed data */
-  mach_msg_body_t msgh_body;
-  mach_msg_port_descriptor_t object_name;
-  /* end of the kernel processed data */
-  NDR_record_t NDR;
-  mach_vm_address_t address;
-  mach_vm_size_t size;
-  mach_msg_type_number_t infoCnt;
-  int info[10];
-} __Reply__mach_vm_region_t __attribute__((unused));
-#ifdef __MigPackStructs
-#pragma pack()
-#endif
-
-#ifdef __MigPackStructs
-#pragma pack(4)
-#endif
-typedef struct {
-  mach_msg_header_t Head;
-  /* start of the kernel processed data */
-  mach_msg_body_t msgh_body;
-  mach_msg_port_descriptor_t object_handle;
-  /* end of the kernel processed data */
-  NDR_record_t NDR;
-  memory_object_size_t size;
-} __Reply___mach_make_memory_entry_t __attribute__((unused));
-#ifdef __MigPackStructs
-#pragma pack()
-#endif
-
-#ifdef __MigPackStructs
-#pragma pack(4)
-#endif
-typedef struct {
-  mach_msg_header_t Head;
-  NDR_record_t NDR;
-  kern_return_t RetCode;
-  int state;
-} __Reply__mach_vm_purgable_control_t __attribute__((unused));
-#ifdef __MigPackStructs
-#pragma pack()
-#endif
-
-#ifdef __MigPackStructs
-#pragma pack(4)
-#endif
-typedef struct {
-  mach_msg_header_t Head;
-  NDR_record_t NDR;
-  kern_return_t RetCode;
-  mach_msg_type_number_t infoCnt;
-  int info[32];
-} __Reply__mach_vm_page_info_t __attribute__((unused));
-#ifdef __MigPackStructs
-#pragma pack()
-#endif
-#endif /* !__Reply__mach_vm_subsystem__defined */
-
-/* union of all replies */
-
-#ifndef __ReplyUnion__mach_vm_subsystem__defined
-#define __ReplyUnion__mach_vm_subsystem__defined
-union __ReplyUnion__mach_vm_subsystem {
-  __Reply__mach_vm_allocate_t Reply_mach_vm_allocate;
-  __Reply__mach_vm_deallocate_t Reply_mach_vm_deallocate;
-  __Reply__mach_vm_protect_t Reply_mach_vm_protect;
-  __Reply__mach_vm_inherit_t Reply_mach_vm_inherit;
-  __Reply__mach_vm_read_t Reply_mach_vm_read;
-  __Reply__mach_vm_read_list_t Reply_mach_vm_read_list;
-  __Reply__mach_vm_write_t Reply_mach_vm_write;
-  __Reply__mach_vm_copy_t Reply_mach_vm_copy;
-  __Reply__mach_vm_read_overwrite_t Reply_mach_vm_read_overwrite;
-  __Reply__mach_vm_msync_t Reply_mach_vm_msync;
-  __Reply__mach_vm_behavior_set_t Reply_mach_vm_behavior_set;
-  __Reply__mach_vm_map_t Reply_mach_vm_map;
-  __Reply__mach_vm_machine_attribute_t Reply_mach_vm_machine_attribute;
-  __Reply__mach_vm_remap_t Reply_mach_vm_remap;
-  __Reply__mach_vm_page_query_t Reply_mach_vm_page_query;
-  __Reply__mach_vm_region_recurse_t Reply_mach_vm_region_recurse;
-  __Reply__mach_vm_region_t Reply_mach_vm_region;
-  __Reply___mach_make_memory_entry_t Reply__mach_make_memory_entry;
-  __Reply__mach_vm_purgable_control_t Reply_mach_vm_purgable_control;
-  __Reply__mach_vm_page_info_t Reply_mach_vm_page_info;
-};
-#endif /* !__RequestUnion__mach_vm_subsystem__defined */
-
-#ifndef subsystem_to_name_map_mach_vm
-#define subsystem_to_name_map_mach_vm                                                                                  \
-  {"mach_vm_allocate", 4800}, {"mach_vm_deallocate", 4801}, {"mach_vm_protect", 4802}, {"mach_vm_inherit", 4803},      \
-      {"mach_vm_read", 4804}, {"mach_vm_read_list", 4805}, {"mach_vm_write", 4806}, {"mach_vm_copy", 4807},            \
-      {"mach_vm_read_overwrite", 4808}, {"mach_vm_msync", 4809}, {"mach_vm_behavior_set", 4810},                       \
-      {"mach_vm_map", 4811}, {"mach_vm_machine_attribute", 4812}, {"mach_vm_remap", 4813},                             \
-      {"mach_vm_page_query", 4814}, {"mach_vm_region_recurse", 4815}, {"mach_vm_region", 4816},                        \
-      {"_mach_make_memory_entry", 4817}, {"mach_vm_purgable_control", 4818}, {                                         \
-    "mach_vm_page_info", 4819                                                                                          \
-  }
-#endif
-
-#ifdef __AfterMigUserHeader
-__AfterMigUserHeader
-#endif /* __AfterMigUserHeader */
-
-#endif /* _mach_vm_user_ */
diff --git a/loader/dobby/source/UserMode/UnifiedInterface/platform-posix.cc b/loader/dobby/source/UserMode/UnifiedInterface/platform-posix.cc
deleted file mode 100644
index 8e5ef8b9..00000000
--- a/loader/dobby/source/UserMode/UnifiedInterface/platform-posix.cc
+++ /dev/null
@@ -1,241 +0,0 @@
-#include <errno.h>
-#include <limits.h>
-#include <pthread.h>
-
-#if defined(__DragonFly__) || defined(__FreeBSD__) || defined(__OpenBSD__)
-#include <pthread_np.h> // for pthread_set_name_np
-#endif
-
-#include <sched.h> // for sched_yield
-#include <stdio.h>
-#include <time.h>
-#include <unistd.h>
-
-#include <sys/mman.h>
-#include <sys/stat.h>
-#include <sys/time.h>
-#include <sys/types.h>
-#include <sys/syscall.h>
-
-#if defined(__APPLE__) || defined(__DragonFly__) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__)
-#include <sys/sysctl.h> // NOLINT, for sysctl
-#endif
-
-#include "logging/logging.h"
-#include "logging/check_logging.h"
-#include "UnifiedInterface/platform.h"
-
-#if defined(__APPLE__)
-#include <dlfcn.h>
-#include <mach/mach.h>
-#include <mach/vm_statistics.h>
-#include <mach/mach_vm.h>
-#include <mach/mach_init.h>  
-#endif
-
-#if defined(ANDROID) && !defined(ANDROID_LOG_STDOUT)
-#define ANDROID_LOG_TAG "Dobby"
-#include <android/log.h>
-#endif
-
-#include <string.h>
-
-#if defined(__APPLE__)
-const int kMmapFd = VM_MAKE_TAG(255);
-#else
-const int kMmapFd = -1;
-#endif
-
-const int kMmapFdOffset = 0;
-
-// ================================================================
-// base :: Thread
-
-using namespace base;
-
-typedef struct thread_handle_t {
-  pthread_t thread;
-} thread_handle_t;
-
-void ThreadInterface::SetName(const char *name) {
-#if defined(__DragonFly__) || defined(__FreeBSD__) || defined(__OpenBSD__)
-  pthread_set_name_np(pthread_self(), name);
-#elif defined(__APPLE__)
-  pthread_setname_np(name);
-#endif
-}
-
-int ThreadInterface::CurrentId() {
-#if defined(__APPLE__)
-  mach_port_t port = mach_thread_self();
-  mach_port_deallocate(mach_task_self(), port);
-  return port;
-#elif defined(_POSIX_VERSION)
-  return syscall(__NR_gettid);
-#endif
-}
-
-static void *thread_handler_wrapper(void *ctx) {
-  ThreadInterface::Delegate *d = (ThreadInterface::Delegate *)ctx;
-  d->ThreadMain();
-  return nullptr;
-}
-
-bool ThreadInterface::Create(ThreadInterface::Delegate *delegate, ThreadHandle *handle) {
-  thread_handle_t *handle_impl = new thread_handle_t;
-
-  int err = 0;
-  err = pthread_create(&(handle_impl->thread), nullptr, thread_handler_wrapper, delegate);
-  if (err != 0) {
-    FATAL("pthread create failed");
-    return false;
-  }
-  return true;
-}
-
-Thread::Thread(const char *name) {
-  strncpy(name_, name, sizeof(name_));
-}
-
-bool Thread::Start() {
-  if (ThreadInterface::Create(this, &handle_) == false) {
-    return false;
-  }
-  return true;
-}
-
-// ================================================================
-// base :: OSMemory
-
-static int GetProtectionFromMemoryPermission(MemoryPermission access) {
-  switch (access) {
-  case MemoryPermission::kNoAccess:
-    return PROT_NONE;
-  case MemoryPermission::kRead:
-    return PROT_READ;
-  case MemoryPermission::kReadWrite:
-    return PROT_READ | PROT_WRITE
-    #if defined(__APPLE__)
-     | VM_PROT_COPY
-    #endif
-    ;
-  case MemoryPermission::kReadWriteExecute:
-    return PROT_READ | PROT_WRITE | PROT_EXEC
-    #if defined(__APPLE__)
-     | VM_PROT_COPY
-    #endif
-    ;
-  case MemoryPermission::kReadExecute:
-    return PROT_READ | PROT_EXEC;
-  }
-  UNREACHABLE();
-}
-
-int OSMemory::AllocPageSize() {
-  return OSMemory::PageSize();
-}
-
-int OSMemory::PageSize() {
-  return static_cast<int>(sysconf(_SC_PAGESIZE));
-}
-
-void *OSMemory::Allocate(void *address, int size, MemoryPermission access) {
-  int prot = GetProtectionFromMemoryPermission(access);
-
-  int flags = MAP_PRIVATE | MAP_ANONYMOUS;
-  if (address != NULL) {
-    flags = flags | MAP_FIXED;
-  }
-  void *result = mmap(address, size, prot, flags, kMmapFd, kMmapFdOffset);
-  if (result == MAP_FAILED)
-    return nullptr;
-
-  return result;
-}
-
-bool OSMemory::Free(void *address, const int size) {
-  DCHECK_EQ(0, reinterpret_cast<uintptr_t>(address) % PageSize());
-  DCHECK_EQ(0, size % PageSize());
-
-  return munmap(address, size) == 0;
-}
-
-bool OSMemory::Release(void *address, int size) {
-  DCHECK_EQ(0, reinterpret_cast<uintptr_t>(address) % PageSize());
-  DCHECK_EQ(0, size % PageSize());
-
-  return munmap(address, size) == 0;
-}
-
-// static
-bool OSMemory::SetPermission(void *address, int size, MemoryPermission access) {
-    DLOG(0, "SetPermission 1");
-  DCHECK_EQ(0, reinterpret_cast<uintptr_t>(address) % PageSize());
-  DLOG(0, "SetPermission 2");
-  DCHECK_EQ(0, size % PageSize());
-
-DLOG(0, "SetPermission 3");
-  int prot = GetProtectionFromMemoryPermission(access);
-  DLOG(0, "SetPermission 4 %p %d %d", address, size, prot);
-  #if defined(__APPLE__)
-  int ret = mach_vm_protect(mach_task_self(), (mach_vm_address_t)address, size, FALSE, prot);
-    #else
-  int ret = mprotect(address, size, prot);
-  #endif
-  DLOG(0, "SetPermission 4.5");
-  if (ret == 0 && access == MemoryPermission::kNoAccess) {
-    // This is advisory; ignore errors and continue execution.
-    // ReclaimInaccessibleMemory(address, size);
-  }
-
-  if (ret) {
-    FATAL("[!] %s\n", ((const char *)strerror(errno)));
-  }
-
-// For accounting purposes, we want to call MADV_FREE_REUSE on macOS after
-// changing permissions away from MemoryPermission::kNoAccess. Since this
-// state is not kept at this layer, we always call this if access != kNoAccess.
-// The cost is a syscall that effectively no-ops.
-// TODO(erikchen): Fix this to only call MADV_FREE_REUSE when necessary.
-// https://crbug.com/823915
-#if defined(OS_MACOSX)
-DLOG(0, "SetPermission 5");
-  if (access != MemoryPermission::kNoAccess)
-    madvise(address, size, MADV_FREE_REUSE);
-#endif
-DLOG(0, "SetPermission 6");
-  return ret == 0;
-}
-
-// ================================================================
-// base :: OSPrint
-
-void OSPrint::Print(const char *format, ...) {
-  va_list args;
-  va_start(args, format);
-  VPrint(format, args);
-  va_end(args);
-}
-
-void OSPrint::VPrint(const char *format, va_list args) {
-#if defined(ANDROID) && !defined(ANDROID_LOG_STDOUT)
-  __android_log_vprint(ANDROID_LOG_INFO, ANDROID_LOG_TAG, format, args);
-#else
-  vprintf(format, args);
-#endif
-}
-
-void OSPrint::PrintError(const char *format, ...) {
-  va_list args;
-  va_start(args, format);
-  VPrintError(format, args);
-  va_end(args);
-}
-
-void OSPrint::VPrintError(const char *format, va_list args) {
-#if defined(ANDROID) && !defined(ANDROID_LOG_STDOUT)
-  __android_log_vprint(ANDROID_LOG_ERROR, LOG_TAG, format, args);
-#else
-  vfprintf(stderr, format, args);
-#endif
-}
diff --git a/loader/dobby/source/UserMode/UnifiedInterface/platform-windows.cc b/loader/dobby/source/UserMode/UnifiedInterface/platform-windows.cc
deleted file mode 100644
index 0bee5a16..00000000
--- a/loader/dobby/source/UserMode/UnifiedInterface/platform-windows.cc
+++ /dev/null
@@ -1,88 +0,0 @@
-#include <stdio.h>
-
-#include <windows.h>
-
-
-#include "logging/logging.h"
-#include "logging/check_logging.h"
-#include "UnifiedInterface/platform.h"
-
-int GetProtectionFromMemoryPermission(MemoryPermission access) {
-  if (kReadWriteExecute == access)
-    return PAGE_EXECUTE_READWRITE;
-  else if (kReadExecute == access)
-    return PAGE_EXECUTE_READ;
-  return 0;
-}
-
-int OSMemory::AllocPageSize() {
-  static int lastRet = -1;
-  if (lastRet == -1) {
-    SYSTEM_INFO si;
-    GetSystemInfo(&si);
-    lastRet = si.dwAllocationGranularity; // should be used with VirtualAlloc(MEM_RESERVE)
-  }
-  return lastRet;
-}
-
-int OSMemory::PageSize() {
-  static int lastRet = -1;
-  if (lastRet == -1) {
-    SYSTEM_INFO si;
-    GetSystemInfo(&si);
-    lastRet = si.dwPageSize; // should be used with VirtualAlloc(MEM_RESERVE)
-  }
-  return lastRet;
-}
-
-void *OSMemory::Allocate(void *address, int size, MemoryPermission access) {
-  DCHECK_EQ(0, reinterpret_cast<uintptr_t>(address) % AllocPageSize());
-  DCHECK_EQ(0, size % PageSize());
-
-  void *result = VirtualAlloc(address, size, MEM_COMMIT | MEM_RESERVE, PAGE_NOACCESS);
-  OSMemory::SetPermission(result, size, kReadWriteExecute);
-  if (result == nullptr)
-    return nullptr;
-
-  // TODO: if need align
-  void *aligned_base = result;
-  return static_cast<void *>(aligned_base);
-}
-
-// static
-bool OSMemory::Free(void *address, const int size) {
-  DCHECK_EQ(0, reinterpret_cast<uintptr_t>(address) % PageSize());
-  DCHECK_EQ(0, size % PageSize());
-
-  return VirtualFree(address, size, MEM_RELEASE);
-}
-
-bool OSMemory::Release(void *address, int size) {
-  DCHECK_EQ(0, reinterpret_cast<uintptr_t>(address) % PageSize());
-  DCHECK_EQ(0, size % PageSize());
-
-  return OSMemory::Free(address, size);
-}
-
-bool OSMemory::SetPermission(void *address, int size, MemoryPermission access) {
-  DCHECK_EQ(0, reinterpret_cast<uintptr_t>(address) % PageSize());
-  DCHECK_EQ(0, size % PageSize());
-
-  int prot = GetProtectionFromMemoryPermission(access);
-
-  DWORD oldProtect;
-  return VirtualProtect(address, size, prot, &oldProtect);
-}
-
-// =====
-
-void OSPrint::Print(const char *format, ...) {
-  va_list args;
-  va_start(args, format);
-  VPrint(format, args);
-  va_end(args);
-}
-
-void OSPrint::VPrint(const char *format, va_list args) {
-  vprintf(format, args);
-}
diff --git a/loader/dobby/source/UserMode/UnifiedInterface/platform.h b/loader/dobby/source/UserMode/UnifiedInterface/platform.h
deleted file mode 100644
index 5330f8c1..00000000
--- a/loader/dobby/source/UserMode/UnifiedInterface/platform.h
+++ /dev/null
@@ -1,102 +0,0 @@
-#ifndef PLATFORM_INTERFACE_COMMON_PLATFORM_H
-#define PLATFORM_INTERFACE_COMMON_PLATFORM_H
-
-#include <stdarg.h>
-
-#include "PlatformUnifiedInterface/StdMemory.h"
-
-namespace base {
-// ================================================================
-// base :: ThreadLocalStorageInterface
-
-class ThreadLocalStorageInterface {
-  using LocalStorageKey = int32_t;
-
-  // Thread-local storage.
-  static LocalStorageKey CreateThreadLocalKey();
-  static void DeleteThreadLocalKey(LocalStorageKey key);
-  static void *GetThreadLocal(LocalStorageKey key);
-  static int GetThreadLocalInt(LocalStorageKey key) {
-    return static_cast<int>(reinterpret_cast<intptr_t>(GetThreadLocal(key)));
-  }
-  static void SetThreadLocal(LocalStorageKey key, void *value);
-  static void SetThreadLocalInt(LocalStorageKey key, int value) {
-    SetThreadLocal(key, reinterpret_cast<void *>(static_cast<intptr_t>(value)));
-  }
-  static bool HasThreadLocal(LocalStorageKey key) {
-    return GetThreadLocal(key) != nullptr;
-  }
-};
-
-// ================================================================
-// base :: Thread
-
-typedef void *ThreadHandle;
-
-class ThreadInterface {
-public:
-  class Delegate {
-  public:
-    virtual void ThreadMain() = 0;
-  };
-
-public:
-  static bool Create(Delegate *delegate, ThreadHandle *handle);
-
-  static int CurrentId();
-
-  static void SetName(const char *);
-};
-
-class Thread : public ThreadInterface, public ThreadInterface::Delegate {
-public:
-  Thread(const char *name);
-
-  bool Start();
-
-private:
-  ThreadHandle handle_;
-
-  char name_[256];
-};
-} // namespace base
-
-// ================================================================
-// base :: OSMemory
-
-class OSMemory {
-public:
-  static int PageSize();
-  
-  static int AllocPageSize();
-
-  static void *Allocate(void *address, int size, MemoryPermission access);
-
-  static bool Free(void *address, const int size);
-
-  static bool Release(void *address, int size);
-
-  static bool SetPermission(void *address, int size, MemoryPermission access);
-};
-
-// ================================================================
-// base :: OSPrint
-
-class OSPrint {
-public:
-  // Print output to console. This is mostly used for debugging output.
-  // On platforms that has standard terminal output, the output
-  // should go to stdout.
-  static void Print(const char *format, ...);
-
-  static void VPrint(const char *format, va_list args);
-
-  // Print error output to console. This is mostly used for error message
-  // output. On platforms that has standard terminal output, the output
-  // should go to stderr.
-  static void PrintError(const char *format, ...);
-
-  static void VPrintError(const char *format, va_list args);
-};
-
-#endif
diff --git a/loader/dobby/source/UserMode/UnifiedInterface/semaphore.cc b/loader/dobby/source/UserMode/UnifiedInterface/semaphore.cc
deleted file mode 100644
index 12a15e02..00000000
--- a/loader/dobby/source/UserMode/UnifiedInterface/semaphore.cc
+++ /dev/null
@@ -1,160 +0,0 @@
-// Copyright 2013 the V8 project authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "src/base/platform/semaphore.h"
-
-#if V8_OS_MACOSX
-#include <dispatch/dispatch.h>
-#endif
-
-#include <errno.h>
-
-#include "src/base/logging.h"
-#include "src/base/platform/elapsed-timer.h"
-#include "src/base/platform/time.h"
-
-namespace v8 {
-namespace base {
-
-#if V8_OS_MACOSX
-
-Semaphore::Semaphore(int count) {
-  native_handle_ = dispatch_semaphore_create(count);
-  DCHECK(native_handle_);
-}
-
-Semaphore::~Semaphore() {
-  dispatch_release(native_handle_);
-}
-
-void Semaphore::Signal() {
-  dispatch_semaphore_signal(native_handle_);
-}
-
-void Semaphore::Wait() {
-  dispatch_semaphore_wait(native_handle_, DISPATCH_TIME_FOREVER);
-}
-
-bool Semaphore::WaitFor(const TimeDelta &rel_time) {
-  dispatch_time_t timeout = dispatch_time(DISPATCH_TIME_NOW, rel_time.InNanoseconds());
-  return dispatch_semaphore_wait(native_handle_, timeout) == 0;
-}
-
-#elif V8_OS_POSIX
-
-Semaphore::Semaphore(int count) {
-  DCHECK_GE(count, 0);
-  int result = sem_init(&native_handle_, 0, count);
-  DCHECK_EQ(0, result);
-  USE(result);
-}
-
-Semaphore::~Semaphore() {
-  int result = sem_destroy(&native_handle_);
-  DCHECK_EQ(0, result);
-  USE(result);
-}
-
-void Semaphore::Signal() {
-  int result = sem_post(&native_handle_);
-  // This check may fail with <libc-2.21, which we use on the try bots, if the
-  // semaphore is destroyed while sem_post is still executed. A work around is
-  // to extend the lifetime of the semaphore.
-  if (result != 0) {
-    FATAL("Error when signaling semaphore, errno: %d", errno);
-  }
-}
-
-void Semaphore::Wait() {
-  while (true) {
-    int result = sem_wait(&native_handle_);
-    if (result == 0)
-      return; // Semaphore was signalled.
-    // Signal caused spurious wakeup.
-    DCHECK_EQ(-1, result);
-    DCHECK_EQ(EINTR, errno);
-  }
-}
-
-bool Semaphore::WaitFor(const TimeDelta &rel_time) {
-  // Compute the time for end of timeout.
-  const Time time = Time::NowFromSystemTime() + rel_time;
-  const struct timespec ts = time.ToTimespec();
-
-  // Wait for semaphore signalled or timeout.
-  while (true) {
-    int result = sem_timedwait(&native_handle_, &ts);
-    if (result == 0)
-      return true; // Semaphore was signalled.
-#if V8_LIBC_GLIBC && !V8_GLIBC_PREREQ(2, 4)
-    if (result > 0) {
-      // sem_timedwait in glibc prior to 2.3.4 returns the errno instead of -1.
-      errno = result;
-      result = -1;
-    }
-#endif
-    if (result == -1 && errno == ETIMEDOUT) {
-      // Timed out while waiting for semaphore.
-      return false;
-    }
-    // Signal caused spurious wakeup.
-    DCHECK_EQ(-1, result);
-    DCHECK_EQ(EINTR, errno);
-  }
-}
-
-#elif V8_OS_WIN
-
-Semaphore::Semaphore(int count) {
-  DCHECK_GE(count, 0);
-  native_handle_ = ::CreateSemaphoreA(nullptr, count, 0x7FFFFFFF, nullptr);
-  DCHECK_NOT_NULL(native_handle_);
-}
-
-Semaphore::~Semaphore() {
-  BOOL result = CloseHandle(native_handle_);
-  DCHECK(result);
-  USE(result);
-}
-
-void Semaphore::Signal() {
-  LONG dummy;
-  BOOL result = ReleaseSemaphore(native_handle_, 1, &dummy);
-  DCHECK(result);
-  USE(result);
-}
-
-void Semaphore::Wait() {
-  DWORD result = WaitForSingleObject(native_handle_, INFINITE);
-  DCHECK(result == WAIT_OBJECT_0);
-  USE(result);
-}
-
-bool Semaphore::WaitFor(const TimeDelta &rel_time) {
-  TimeTicks now = TimeTicks::Now();
-  TimeTicks end = now + rel_time;
-  while (true) {
-    int64_t msec = (end - now).InMilliseconds();
-    if (msec >= static_cast<int64_t>(INFINITE)) {
-      DWORD result = WaitForSingleObject(native_handle_, INFINITE - 1);
-      if (result == WAIT_OBJECT_0) {
-        return true;
-      }
-      DCHECK(result == WAIT_TIMEOUT);
-      now = TimeTicks::Now();
-    } else {
-      DWORD result = WaitForSingleObject(native_handle_, (msec < 0) ? 0 : static_cast<DWORD>(msec));
-      if (result == WAIT_TIMEOUT) {
-        return false;
-      }
-      DCHECK(result == WAIT_OBJECT_0);
-      return true;
-    }
-  }
-}
-
-#endif // V8_OS_MACOSX
-
-} // namespace base
-} // namespace v8
diff --git a/loader/dobby/source/UserMode/UnifiedInterface/semaphore.h b/loader/dobby/source/UserMode/UnifiedInterface/semaphore.h
deleted file mode 100644
index cff4cd47..00000000
--- a/loader/dobby/source/UserMode/UnifiedInterface/semaphore.h
+++ /dev/null
@@ -1,98 +0,0 @@
-// Copyright 2013 the V8 project authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef V8_BASE_PLATFORM_SEMAPHORE_H_
-#define V8_BASE_PLATFORM_SEMAPHORE_H_
-
-#include "src/base/base-export.h"
-#include "src/base/lazy-instance.h"
-#if V8_OS_WIN
-#include "src/base/win32-headers.h"
-#endif
-
-#if V8_OS_MACOSX
-#include <dispatch/dispatch.h> // NOLINT
-#elif V8_OS_POSIX
-#include <semaphore.h> // NOLINT
-#endif
-
-namespace v8 {
-namespace base {
-
-// Forward declarations.
-class TimeDelta;
-
-// ----------------------------------------------------------------------------
-// Semaphore
-//
-// A semaphore object is a synchronization object that maintains a count. The
-// count is decremented each time a thread completes a wait for the semaphore
-// object and incremented each time a thread signals the semaphore. When the
-// count reaches zero,  threads waiting for the semaphore blocks until the
-// count becomes non-zero.
-
-class V8_BASE_EXPORT Semaphore final {
-public:
-  explicit Semaphore(int count);
-  ~Semaphore();
-
-  // Increments the semaphore counter.
-  void Signal();
-
-  // Decrements the semaphore counter if it is positive, or blocks until it
-  // becomes positive and then decrements the counter.
-  void Wait();
-
-  // Like Wait() but returns after rel_time time has passed. If the timeout
-  // happens the return value is false and the counter is unchanged. Otherwise
-  // the semaphore counter is decremented and true is returned.
-  bool WaitFor(const TimeDelta &rel_time) V8_WARN_UNUSED_RESULT;
-
-#if V8_OS_MACOSX
-  using NativeHandle = dispatch_semaphore_t;
-#elif V8_OS_POSIX
-  using NativeHandle = sem_t;
-#elif V8_OS_WIN
-  using NativeHandle = HANDLE;
-#endif
-
-  NativeHandle &native_handle() {
-    return native_handle_;
-  }
-  const NativeHandle &native_handle() const {
-    return native_handle_;
-  }
-
-private:
-  NativeHandle native_handle_;
-
-  DISALLOW_COPY_AND_ASSIGN(Semaphore);
-};
-
-// POD Semaphore initialized lazily (i.e. the first time Pointer() is called).
-// Usage:
-//   // The following semaphore starts at 0.
-//   static LazySemaphore<0>::type my_semaphore = LAZY_SEMAPHORE_INITIALIZER;
-//
-//   void my_function() {
-//     // Do something with my_semaphore.Pointer().
-//   }
-//
-
-template <int N> struct CreateSemaphoreTrait {
-  static Semaphore *Create() {
-    return new Semaphore(N);
-  }
-};
-
-template <int N> struct LazySemaphore {
-  using typename LazyDynamicInstance<Semaphore, CreateSemaphoreTrait<N>, ThreadSafeInitOnceTrait>::type;
-};
-
-#define LAZY_SEMAPHORE_INITIALIZER LAZY_DYNAMIC_INSTANCE_INITIALIZER
-
-} // namespace base
-} // namespace v8
-
-#endif // V8_BASE_PLATFORM_SEMAPHORE_H_
diff --git a/loader/dobby/source/core/arch/Cpu.cc b/loader/dobby/source/core/arch/Cpu.cc
deleted file mode 100644
index 07163616..00000000
--- a/loader/dobby/source/core/arch/Cpu.cc
+++ /dev/null
@@ -1,5 +0,0 @@
-
-#include "core/arch/Cpu.h"
-#include "core/arch/CpuUtils.h"
-
-#include "xnucxx/LiteMemOpt.h"
diff --git a/loader/dobby/source/core/arch/Cpu.h b/loader/dobby/source/core/arch/Cpu.h
deleted file mode 100644
index e0361a73..00000000
--- a/loader/dobby/source/core/arch/Cpu.h
+++ /dev/null
@@ -1,7 +0,0 @@
-#ifndef CORE_ARCH_CPU_H
-#define CORE_ARCH_CPU_H
-
-#include "CpuRegister.h"
-#include "CpuFeature.h"
-
-#endif
diff --git a/loader/dobby/source/core/arch/CpuFeature.cc b/loader/dobby/source/core/arch/CpuFeature.cc
deleted file mode 100644
index d29f1761..00000000
--- a/loader/dobby/source/core/arch/CpuFeature.cc
+++ /dev/null
@@ -1,7 +0,0 @@
-
-#include "core/arch/CpuFeature.h"
-#include "logging/logging.h"
-
-void CpuFeatures::ClearCache(void *start, void *end) {
-  UNIMPLEMENTED();
-}
\ No newline at end of file
diff --git a/loader/dobby/source/core/arch/CpuFeature.h b/loader/dobby/source/core/arch/CpuFeature.h
deleted file mode 100644
index 302bb16a..00000000
--- a/loader/dobby/source/core/arch/CpuFeature.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef CORE_ARCH_CPU_FEATURE_H
-#define CORE_ARCH_CPU_FEATURE_H
-
-#include "common_header.h"
-
-class CpuFeatures {
-private:
-  static void FlushICache(void *start, int size) {
-    ClearCache(start, (void *)((addr_t)start + size));
-  }
-
-  static void FlushICache(void *start, void *end) {
-    ClearCache(start, end);
-  }
-
-  static void ClearCache(void *start, void *end);
-};
-
-#endif
diff --git a/loader/dobby/source/core/arch/CpuRegister.cc b/loader/dobby/source/core/arch/CpuRegister.cc
deleted file mode 100644
index 3617e4ee..00000000
--- a/loader/dobby/source/core/arch/CpuRegister.cc
+++ /dev/null
@@ -1,10 +0,0 @@
-
-#include "CpuRegister.h"
-
-constexpr RegisterBase RegisterBase::from_code(int code) {
-  return RegisterBase{code};
-}
-
-constexpr RegisterBase RegisterBase::no_reg() {
-  return RegisterBase{0};
-}
\ No newline at end of file
diff --git a/loader/dobby/source/core/arch/CpuRegister.h b/loader/dobby/source/core/arch/CpuRegister.h
deleted file mode 100644
index e12aff48..00000000
--- a/loader/dobby/source/core/arch/CpuRegister.h
+++ /dev/null
@@ -1,25 +0,0 @@
-#ifndef CORE_ARCH_CPU_REGISTER_H
-#define CORE_ARCH_CPU_REGISTER_H
-
-class RegisterBase {
-public:
-  static constexpr RegisterBase from_code(int code);
-
-  static constexpr RegisterBase no_reg();
-
-  virtual bool Is(const RegisterBase &reg) const {
-    return (reg.reg_code_ == this->reg_code_);
-  }
-
-  int code() const {
-    return reg_code_;
-  };
-
-protected:
-  explicit constexpr RegisterBase(int code) : reg_code_(code) {
-  }
-
-  int reg_code_;
-};
-
-#endif
diff --git a/loader/dobby/source/core/arch/CpuUtils.h b/loader/dobby/source/core/arch/CpuUtils.h
deleted file mode 100644
index 39423634..00000000
--- a/loader/dobby/source/core/arch/CpuUtils.h
+++ /dev/null
@@ -1,17 +0,0 @@
-#ifndef CPU_UTILITY_H
-#define CPU_UTILITY_H
-
-/* Define the default attributes for the functions in this file. */
-#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__))
-
-#if defined(__i386__) || defined(__x86_64__)
-static __inline__ void __DEFAULT_FN_ATTRS __cpuid(int __info[4], int __level) {
-  __asm__("cpuid" : "=a"(__info[0]), "=b"(__info[1]), "=c"(__info[2]), "=d"(__info[3]) : "a"(__level));
-}
-
-static __inline__ void __DEFAULT_FN_ATTRS __cpuidex(int __info[4], int __level, int __ecx) {
-  __asm__("cpuid" : "=a"(__info[0]), "=b"(__info[1]), "=c"(__info[2]), "=d"(__info[3]) : "a"(__level), "c"(__ecx));
-}
-#endif
-
-#endif
diff --git a/loader/dobby/source/core/arch/arm/constants-arm.h b/loader/dobby/source/core/arch/arm/constants-arm.h
deleted file mode 100644
index b326d348..00000000
--- a/loader/dobby/source/core/arch/arm/constants-arm.h
+++ /dev/null
@@ -1,70 +0,0 @@
-#ifndef CORE_ARCH_CONSTANTS_ARM_H
-#define CORE_ARCH_CONSTANTS_ARM_H
-
-enum AddrMode { Offset = 0, PreIndex = 1, PostIndex = 2 };
-
-enum Condition {
-  EQ = 0,  // equal
-  NE = 1,  // not equal
-  CS = 2,  // carry set/unsigned higher or same
-  CC = 3,  // carry clear/unsigned lower
-  MI = 4,  // minus/negative
-  PL = 5,  // plus/positive or zero
-  VS = 6,  // overflow
-  VC = 7,  // no overflow
-  HI = 8,  // unsigned higher
-  LS = 9,  // unsigned lower or same
-  GE = 10, // signed greater than or equal
-  LT = 11, // signed less than
-  GT = 12, // signed greater than
-  LE = 13, // signed less than or equal
-  AL = 14, // always (unconditional)
-
-};
-
-enum Shift {
-  LSL = 0, // Logical shift left
-  LSR = 1, // Logical shift right
-  ASR = 2, // Arithmetic shift right
-  ROR = 3, // Rotate right
-};
-
-enum {
-  B0 = 1 << 0,
-  B4 = 1 << 4,
-  B5 = 1 << 5,
-  B6 = 1 << 6,
-  B7 = 1 << 7,
-  B8 = 1 << 8,
-  B9 = 1 << 9,
-  B10 = 1 << 10,
-  B12 = 1 << 12,
-  B14 = 1 << 14,
-  B15 = 1 << 15,
-  B16 = 1 << 16,
-  B17 = 1 << 17,
-  B18 = 1 << 18,
-  B19 = 1 << 19,
-  B20 = 1 << 20,
-  B21 = 1 << 21,
-  B22 = 1 << 22,
-  B23 = 1 << 23,
-  B24 = 1 << 24,
-  B25 = 1 << 25,
-  B26 = 1 << 26,
-  B27 = 1 << 27,
-  B28 = 1 << 28,
-};
-
-enum InstructionFields {
-  // Registers.
-  kRdShift = 12,
-  kRtShift = 12,
-  kRmShift = 10,
-  kRnShift = 16,
-
-  // Condition
-  kConditionShift = 28,
-};
-
-#endif
\ No newline at end of file
diff --git a/loader/dobby/source/core/arch/arm/registers-arm.h b/loader/dobby/source/core/arch/arm/registers-arm.h
deleted file mode 100644
index 88b7c2e1..00000000
--- a/loader/dobby/source/core/arch/arm/registers-arm.h
+++ /dev/null
@@ -1,58 +0,0 @@
-#ifndef ARCH_ARM_REGISTERS
-#define ARCH_ARM_REGISTERS
-
-#include "core/arch/arm/constants-arm.h"
-#include "core/arch/Cpu.h"
-
-namespace zz {
-namespace arm {
-
-#define GENERAL_REGISTERS(V)                                                                                           \
-  V(r0) V(r1) V(r2) V(r3) V(r4) V(r5) V(r6) V(r7) V(r8) V(r9) V(r10) V(r11) V(r12) V(sp) V(lr) V(pc)
-
-enum RegisterCode {
-#define REGISTER_CODE(R) kRegCode_##R,
-  GENERAL_REGISTERS(REGISTER_CODE)
-#undef REGISTER_CODE
-      kRegAfterLast
-};
-
-class Register : public RegisterBase {
-public:
-  explicit constexpr Register(int code) : RegisterBase(code) {
-  }
-
-  static constexpr Register Create(int code) {
-    return Register(code);
-  }
-
-  static constexpr Register R(int code) {
-    return Register(code);
-  }
-
-  bool Is(const Register &reg) const {
-    return (reg.reg_code_ == this->reg_code_);
-  }
-
-  bool IsValid() const {
-    return (reg_code_ != 0);
-  }
-
-  int code() const {
-    return reg_code_;
-  }
-
-private:
-};
-
-typedef Register CPURegister;
-
-#define DECLARE_REGISTER(R) constexpr Register R = Register::Create(kRegCode_##R);
-GENERAL_REGISTERS(DECLARE_REGISTER)
-#undef DECLARE_REGISTER
-
-constexpr Register no_reg = Register::Create(0);
-
-} // namespace arm
-} // namespace zz
-#endif
\ No newline at end of file
diff --git a/loader/dobby/source/core/arch/arm64/constants-arm64.h b/loader/dobby/source/core/arch/arm64/constants-arm64.h
deleted file mode 100644
index 5540e6b1..00000000
--- a/loader/dobby/source/core/arch/arm64/constants-arm64.h
+++ /dev/null
@@ -1,387 +0,0 @@
-#ifndef CORE_ARCH_CONSTANTS_ARM64_H
-#define CORE_ARCH_CONSTANTS_ARM64_H
-
-#include "common_header.h"
-
-enum Shift { NO_SHIFT = -1, LSL = 0x0, LSR = 0x1, ASR = 0x2, ROR = 0x3, MSL = 0x4 };
-
-enum Extend { NO_EXTEND = -1, UXTB = 0, UXTH = 1, UXTW = 2, UXTX = 3, SXTB = 4, SXTH = 5, SXTW = 6, SXTX = 7 };
-
-enum AddrMode { Offset, PreIndex, PostIndex };
-
-enum FlagsUpdate { SetFlags = 1, LeaveFlags = 0 };
-
-enum InstructionFields {
-
-  // Registers.
-  kRdShift = 0,
-  kRdBits = 5,
-  kRnShift = 5,
-  kRnBits = 5,
-  kRaShift = 10,
-  kRaBits = 5,
-  kRmShift = 16,
-  kRmBits = 5,
-  kRtShift = 0,
-  kRtBits = 5,
-  kRt2Shift = 10,
-  kRt2Bits = 5,
-  kRsShift = 16,
-  kRsBits = 5,
-
-};
-
-#define OP(op) op
-#define OP_W(op) op##_w
-#define OP_X(op) op##_x
-#define OP_B(op) op##_b
-#define OP_H(op) op##_h
-#define OP_S(op) op##_s
-#define OP_D(op) op##_d
-#define OP_Q(op) op##_q
-
-#define OPT(op, attribute) op##_##attribute
-#define OPT_W(op, attribute) op##_w_##attribute
-#define OPT_X(op, attribute) op##_x_##attribute
-#define OPT_B(op, attribute) op##_b_##attribute
-#define OPT_H(op, attribute) op##_h_##attribute
-#define OPT_S(op, attribute) op##_s_##attribute
-#define OPT_D(op, attribute) op##_d_##attribute
-#define OPT_Q(op, attribute) op##_q_##attribute
-
-// =====
-
-// Exception.
-enum ExceptionOp {
-  ExceptionFixed = 0xD4000000,
-  ExceptionFMask = 0xFF000000,
-  ExceptionMask = 0xFFE0001F,
-
-  HLT = ExceptionFixed | 0x00400000,
-  BRK = ExceptionFixed | 0x00200000,
-  SVC = ExceptionFixed | 0x00000001,
-  HVC = ExceptionFixed | 0x00000002,
-  SMC = ExceptionFixed | 0x00000003,
-  DCPS1 = ExceptionFixed | 0x00A00001,
-  DCPS2 = ExceptionFixed | 0x00A00002,
-  DCPS3 = ExceptionFixed | 0x00A00003
-};
-
-// =====
-
-// Unconditional branch.
-enum UnconditionalBranchOp {
-  UnconditionalBranchFixed = 0x14000000,
-  UnconditionalBranchFixedMask = 0x7C000000,
-  UnconditionalBranchMask = 0xFC000000,
-
-  B = UnconditionalBranchFixed | 0x00000000,
-  BL = UnconditionalBranchFixed | 0x80000000
-};
-
-// =====
-
-// Unconditional branch to register.
-enum UnconditionalBranchToRegisterOp {
-  UnconditionalBranchToRegisterFixed = 0xD6000000,
-  UnconditionalBranchToRegisterFixedMask = 0xFE000000,
-  UnconditionalBranchToRegisterMask = 0xFFFFFC1F,
-
-  BR = UnconditionalBranchToRegisterFixed | 0x001F0000,
-  BLR = UnconditionalBranchToRegisterFixed | 0x003F0000,
-  RET = UnconditionalBranchToRegisterFixed | 0x005F0000
-};
-
-// =====
-
-enum LoadRegLiteralOp {
-  LoadRegLiteralFixed = 0x18000000,
-  LoadRegLiteralFixedMask = 0x3B000000,
-  LoadRegLiteralMask = 0xFF000000,
-
-#define LoadRegLiteralSub(opc, V) LoadRegLiteralFixed | LeftShift(opc, 2, 30) | LeftShift(V, 1, 26)
-  OPT_W(LDR, literal) = LoadRegLiteralSub(0b00, 0),
-  OPT_X(LDR, literal) = LoadRegLiteralSub(0b01, 0),
-  OPT(LDRSW, literal) = LoadRegLiteralSub(0b10, 0),
-  OPT(PRFM, literal) = LoadRegLiteralSub(0b11, 0),
-  OPT_S(LDR, literal) = LoadRegLiteralSub(0b00, 1),
-  OPT_D(LDR, literal) = LoadRegLiteralSub(0b01, 1),
-  OPT_Q(LDR, literal) = LoadRegLiteralSub(0b10, 1),
-};
-
-// =====
-
-// clang-format off
-#define LOAD_STORE_OP_LIST(V)   \
-  V(OP_W(STRB),   0b00, 0, 0b00),   \
-  V(OP_W(LDRB),   0b00, 0, 0b01),   \
-  V(OP_X(LDRSB),  0b00, 0, 0b10),   \
-  V(OP_W(LDRSB),  0b00, 0, 0b11),   \
-  V(OP_B(STR),    0b00, 1, 0b00),   \
-  V(OP_B(LDR),    0b00, 1, 0b01),   \
-  V(OP_Q(STR),    0b00, 1, 0b10),   \
-  V(OP_Q(LDR),    0b00, 1, 0b11),   \
-  V(OP_W(STRH),   0b01, 0, 0b00),   \
-  V(OP_W(LDRH),   0b01, 0, 0b01),   \
-  V(OP_X(LDRSH),  0b01, 0, 0b10),   \
-  V(OP_W(LDRSH),  0b01, 0, 0b11),   \
-  V(OP_H(STR),    0b01, 1, 0b00),   \
-  V(OP_H(LDR),    0b01, 1, 0b01),   \
-  V(OP_W(STR),    0b10, 0, 0b00),   \
-  V(OP_W(LDR),    0b10, 0, 0b01),   \
-  V(OP(LDRSW),    0b10, 0, 0b10),   \
-  V(OP_S(STR),    0b10, 1, 0b00),   \
-  V(OP_S(LDR),    0b10, 1, 0b01),   \
-  V(OP_X(STR),    0b11, 0, 0b00),   \
-  V(OP_X(LDR),    0b11, 0, 0b01),   \
-  V(OP(PRFM),     0b11, 0, 0b10),   \
-  V(OP_D(STR),    0b11, 1, 0b00),   \
-  V(OP_D(LDR),    0b11, 1, 0b01),
-// clang-format on
-
-// Load/store
-enum LoadStoreOp {
-#define LoadStoreOpSub(size, V, opc) LeftShift(size, 2, 30) | LeftShift(V, 1, 26) | LeftShift(opc, 2, 22)
-#define LOAD_STORE(opname, size, V, opc) OP(opname) = LoadStoreOpSub(size, V, opc)
-  LOAD_STORE_OP_LIST(LOAD_STORE)
-#undef LOAD_STORE
-};
-
-// Load/store register offset.
-enum LoadStoreRegisterOffsetOp {
-  LoadStoreRegisterOffsetFixed = 0x38200800,
-  LoadStoreRegisterOffsetFixedMask = 0x3B200C00,
-  LoadStoreRegisterOffsetMask = 0xFFE00C00,
-
-#define LoadStoreRegisterOffsetOpSub(size, V, opc)                                                                     \
-  LoadStoreRegisterOffsetFixed | LeftShift(size, 2, 30) | LeftShift(V, 1, 26) | LeftShift(opc, 2, 22)
-#define LOAD_STORE_REGISTER_OFFSET(opname, size, V, opc)                                                               \
-  OPT(opname, register) = LoadStoreRegisterOffsetOpSub(size, V, opc)
-  LOAD_STORE_OP_LIST(LOAD_STORE_REGISTER_OFFSET)
-#undef LOAD_STORE_REGISTER_OFFSET
-};
-
-// Load/store register (unscaled immediate)
-enum LoadStoreUnscaledOffsetOp {
-  LoadStoreUnscaledOffsetFixed = 0x38000000,
-  LoadStoreUnscaledOffsetFixedMask = 0x3B200C00,
-  LoadStoreUnscaledOffsetMask = 0xFFE00C00,
-
-#define LoadStoreUnscaledOffsetOpSub(size, V, opc)                                                                     \
-  LoadStoreUnscaledOffsetFixed | LeftShift(size, 2, 30) | LeftShift(V, 1, 26) | LeftShift(opc, 2, 22)
-#define LOAD_STORE_UNSCALED(opname, size, V, opc) OPT(opname, unscaled) = LoadStoreUnscaledOffsetOpSub(size, V, opc)
-  LOAD_STORE_OP_LIST(LOAD_STORE_UNSCALED)
-#undef LOAD_STORE_UNSCALED
-};
-
-// Load/store unsigned offset.
-enum LoadStoreUnsignedOffset {
-  LoadStoreUnsignedOffsetFixed = 0x39000000,
-  LoadStoreUnsignedOffsetFixedMask = 0x3B000000,
-  LoadStoreUnsignedOffsetMask = 0xFFC00000,
-
-#define LoadStoreUnsignedOffsetSub(size, V, opc)                                                                       \
-  LoadStoreUnsignedOffsetFixed | LeftShift(size, 2, 30) | LeftShift(V, 1, 26) | LeftShift(opc, 2, 22)
-#define LOAD_STORE_UNSIGNED_OFFSET(opname, size, V, opc)                                                               \
-  OPT(opname, unsigned) = LoadStoreUnsignedOffsetSub(size, V, opc)
-  LOAD_STORE_OP_LIST(LOAD_STORE_UNSIGNED_OFFSET)
-#undef LOAD_STORE_UNSIGNED_OFFSET
-};
-
-// =====
-
-// clang-format off
-#define LOAD_STORE_PAIR_OP_LIST(V) \
-  V(OP_W(STP),    0b00, 0, 0),   \
-  V(OP_W(LDP),    0b00, 0, 1),   \
-  V(OP_S(STP),    0b00, 1, 0),   \
-  V(OP_S(LDP),    0b00, 1, 1),   \
-  V(OP(LDPSW),    0b01, 0, 1),   \
-  V(OP_D(STP),    0b01, 1, 0),   \
-  V(OP_D(LDP),    0b01, 1, 1),   \
-  V(OP_X(STP),    0b10, 0, 0),   \
-  V(OP_X(LDP),    0b10, 0, 1),   \
-  V(OP_Q(STP),    0b10, 1, 0),   \
-  V(OP_Q(LDP),    0b10, 1, 1)
-// clang-format on
-
-enum LoadStorePairOp {
-#define LoadStorePairOpSub(opc, V, L) LeftShift(opc, 2, 30) | LeftShift(V, 1, 26) | LeftShift(L, 1, 22)
-#define LOAD_STORE_PAIR(opname, opc, V, L) OP(opname) = LoadStorePairOpSub(opc, V, L)
-  LOAD_STORE_PAIR_OP_LIST(LOAD_STORE_PAIR)
-#undef LOAD_STORE_PAIR
-};
-
-enum LoadStorePairOffsetOp {
-  LoadStorePairOffsetFixed = 0x29000000,
-  LoadStorePairOffsetFixedMask = 0x3B800000,
-  LoadStorePairOffsetMask = 0xFFC00000,
-
-#define LoadStorePairOffsetOpSub(opc, V, L)                                                                            \
-  LoadStorePairOffsetFixed | LeftShift(opc, 2, 30) | LeftShift(V, 1, 26) | LeftShift(L, 1, 22)
-#define LOAD_STORE_PAIR_OFFSET(opname, opc, V, L) OPT(opname, offset) = LoadStorePairOffsetOpSub(opc, V, L)
-  LOAD_STORE_PAIR_OP_LIST(LOAD_STORE_PAIR_OFFSET)
-#undef LOAD_STORE_PAIR_OFFSET
-};
-
-enum LoadStorePairPostIndexOp {
-  LoadStorePairPostIndexFixed = 0x28800000,
-  LoadStorePairPostIndexFixedMask = 0x3B800000,
-  LoadStorePairPostIndexMask = 0xFFC00000,
-
-#define LoadStorePairPostOpSub(opc, V, L)                                                                              \
-  LoadStorePairPostIndexFixed | LeftShift(opc, 2, 30) | LeftShift(V, 1, 26) | LeftShift(L, 1, 22)
-#define LOAD_STORE_PAIR_POST_INDEX(opname, opc, V, L) OPT(opname, post) = LoadStorePairPostOpSub(opc, V, L)
-  LOAD_STORE_PAIR_OP_LIST(LOAD_STORE_PAIR_POST_INDEX)
-#undef LOAD_STORE_PAIR_POST_INDEX
-};
-
-enum LoadStorePairPreIndexOp {
-  LoadStorePairPreIndexFixed = 0x29800000,
-  LoadStorePairPreIndexFixedMask = 0x3B800000,
-  LoadStorePairPreIndexMask = 0xFFC00000,
-
-#define LoadStorePairPreOpSub(opc, V, L)                                                                               \
-  LoadStorePairPreIndexFixed | LeftShift(opc, 2, 30) | LeftShift(V, 1, 26) | LeftShift(L, 1, 22)
-#define LOAD_STORE_PAIR_PRE_INDEX(opname, opc, V, L) OPT(opname, pre) = LoadStorePairPreOpSub(opc, V, L)
-  LOAD_STORE_PAIR_OP_LIST(LOAD_STORE_PAIR_PRE_INDEX)
-#undef LOAD_STORE_PAIR_PRE_INDEX
-};
-
-// =====
-
-// Generic fields.
-enum GenericInstrField { SixtyFourBits = 0x80000000, ThirtyTwoBits = 0x00000000, FP32 = 0x00000000, FP64 = 0x00400000 };
-
-// Generic utils
-// #define sf(rd) (rd.Is64Bits() ? SixtyFourBits : ThirtyTwoBits)
-
-// =====
-
-// Move wide immediate.
-enum MoveWideImmediateOp {
-  MoveWideImmediateFixed = 0x12800000,
-  MoveWideImmediateFixedMask = 0x1F800000,
-  MoveWideImmediateMask = 0xFF800000,
-
-  OP(MOVN) = 0x00000000,
-  OP(MOVZ) = 0x40000000,
-  OP(MOVK) = 0x60000000,
-
-#define MoveWideImmediateOpSub(sf, opc) MoveWideImmediateFixed | LeftShift(sf, 1, 31) | LeftShift(opc, 2, 29)
-  OP_W(MOVN) = MoveWideImmediateFixed | MOVN,
-  OP_X(MOVN) = MoveWideImmediateFixed | MOVN | SixtyFourBits,
-  OP_W(MOVZ) = MoveWideImmediateFixed | MOVZ,
-  OP_X(MOVZ) = MoveWideImmediateFixed | MOVZ | SixtyFourBits,
-  OP_W(MOVK) = MoveWideImmediateFixed | MOVK,
-  OP_X(MOVK) = MoveWideImmediateFixed | MOVK | SixtyFourBits
-};
-
-// =====
-
-enum AddSubImmediateOp {
-  AddSubImmediateFixed = 0x11000000,
-  AddSubImmediateFixedMask = 0x1F000000,
-  AddSubImmediateMask = 0xFF000000,
-
-#define AddSubImmediateOpSub(sf, op, S)                                                                                \
-  AddSubImmediateFixed | LeftShift(sf, 1, 31) | LeftShift(op, 1, 30) | LeftShift(S, 1, 29)
-  OPT_W(ADD, imm) = AddSubImmediateOpSub(0, 0, 0),
-  OPT_W(ADDS, imm) = AddSubImmediateOpSub(0, 0, 1),
-  OPT_W(SUB, imm) = AddSubImmediateOpSub(0, 1, 0),
-  OPT_W(SUBS, imm) = AddSubImmediateOpSub(0, 1, 1),
-  OPT_X(ADD, imm) = AddSubImmediateOpSub(1, 0, 0),
-  OPT_X(ADDS, imm) = AddSubImmediateOpSub(1, 0, 1),
-  OPT_X(SUB, imm) = AddSubImmediateOpSub(1, 1, 0),
-  OPT_X(SUBS, imm) = AddSubImmediateOpSub(1, 1, 1)
-};
-
-enum AddSubShiftedOp {
-  AddSubShiftedFixed = 0x0B000000,
-  AddSubShiftedFixedMask = 0x1F200000,
-  AddSubShiftedMask = 0xFF200000,
-
-#define AddSubShiftedOpSub(sf, op, S)                                                                                  \
-  AddSubShiftedFixed | LeftShift(sf, 1, 31) | LeftShift(op, 1, 30) | LeftShift(S, 1, 29)
-  OPT_W(ADD, shift) = AddSubShiftedOpSub(0, 0, 0),
-  OPT_W(ADDS, shift) = AddSubShiftedOpSub(0, 0, 1),
-  OPT_W(SUB, shift) = AddSubShiftedOpSub(0, 1, 0),
-  OPT_W(SUBS, shift) = AddSubShiftedOpSub(0, 1, 1),
-  OPT_X(ADD, shift) = AddSubShiftedOpSub(1, 0, 0),
-  OPT_X(ADDS, shift) = AddSubShiftedOpSub(1, 0, 1),
-  OPT_X(SUB, shift) = AddSubShiftedOpSub(1, 1, 0),
-  OPT_X(SUBS, shift) = AddSubShiftedOpSub(1, 1, 1)
-};
-
-enum AddSubExtendedOp {
-  AddSubExtendedFixed = 0x0B200000,
-  AddSubExtendedFixedMask = 0x1F200000,
-  AddSubExtendedMask = 0xFFE00000,
-
-#define AddSubExtendedOpSub(sf, op, S)                                                                                 \
-  AddSubExtendedFixed | LeftShift(sf, 1, 31) | LeftShift(op, 1, 30) | LeftShift(S, 1, 29)
-  OPT_W(ADD, extend) = AddSubExtendedOpSub(0, 0, 0),
-  OPT_W(ADDS, extend) = AddSubExtendedOpSub(0, 0, 1),
-  OPT_W(SUB, extend) = AddSubExtendedOpSub(0, 1, 0),
-  OPT_W(SUBS, extend) = AddSubExtendedOpSub(0, 1, 1),
-  OPT_X(ADD, extend) = AddSubExtendedOpSub(1, 0, 0),
-  OPT_X(ADDS, extend) = AddSubExtendedOpSub(1, 0, 1),
-  OPT_X(SUB, extend) = AddSubExtendedOpSub(1, 1, 0),
-  OPT_X(SUBS, extend) = AddSubExtendedOpSub(1, 1, 1)
-};
-
-// =====
-
-// Logical (immediate and shifted register).
-enum LogicalOp {
-  LogicalOpMask = 0x60200000,
-  NOT = 0x00200000,
-  AND = 0x00000000,
-  BIC = AND | NOT,
-  ORR = 0x20000000,
-  ORN = ORR | NOT,
-  EOR = 0x40000000,
-  EON = EOR | NOT,
-  ANDS = 0x60000000,
-  BICS = ANDS | NOT
-};
-
-// Logical immediate.
-enum LogicalImmediateOp {
-  LogicalImmediateFixed = 0x12000000,
-  LogicalImmediateFixedMask = 0x1F800000,
-  LogicalImmediateMask = 0xFF800000,
-
-#define W_X_OP(opname, combine_fields)                                                                                 \
-  OPT_W(opname, imm) = LogicalImmediateFixed | combine_fields | ThirtyTwoBits,                                         \
-                OPT_X(opname, imm) = LogicalImmediateFixed | combine_fields | SixtyFourBits
-#define W_X_OP_LIST(V) V(AND, AND), V(ORR, ORR), V(EOR, EOR), V(ANDS, ANDS)
-#undef W_X_OP
-#undef W_X_OP_LIST
-};
-
-// Logical shifted register.
-enum LogicalShiftedOp {
-  LogicalShiftedFixed = 0x0A000000,
-  LogicalShiftedFixedMask = 0x1F000000,
-  LogicalShiftedMask = 0xFF200000,
-
-#define W_X_OP(opname, combine_fields)                                                                                 \
-  OPT_W(opname, shift) = LogicalShiftedFixed | combine_fields | ThirtyTwoBits,                                         \
-                OPT_X(opname, shift) = LogicalShiftedFixed | combine_fields | SixtyFourBits
-#define W_X_OP_LIST(V)                                                                                                 \
-  V(AND, AND), V(BIC, BIC), V(ORR, ORR), V(ORN, ORN), V(EOR, EOR), V(EON, EON), V(ANDS, ANDS), V(BICS, BICS)
-#undef W_X_OP
-#undef W_X_OP_LIST
-};
-
-// PC relative addressing.
-enum PCRelAddressingOp {
-  PCRelAddressingFixed = 0x10000000,
-  PCRelAddressingFixedMask = 0x1F000000,
-  PCRelAddressingMask = 0x9F000000,
-  ADR = PCRelAddressingFixed | 0x00000000,
-  ADRP = PCRelAddressingFixed | 0x80000000
-};
-
-#endif
diff --git a/loader/dobby/source/core/arch/arm64/registers-arm64.h b/loader/dobby/source/core/arch/arm64/registers-arm64.h
deleted file mode 100644
index 84a6d6b9..00000000
--- a/loader/dobby/source/core/arch/arm64/registers-arm64.h
+++ /dev/null
@@ -1,142 +0,0 @@
-#ifndef ARCH_ARM64_REGISTERS
-#define ARCH_ARM64_REGISTERS
-
-#include "core/arch/arm64/constants-arm64.h"
-#include "core/arch/Cpu.h"
-
-namespace zz {
-namespace arm64 {
-
-class CPURegister : RegisterBase {
-public:
-  enum RegisterType {
-    kRegister_32,
-    kRegister_W = kRegister_32,
-    kRegister_64,
-    kRegister_X = kRegister_64,
-    kRegister,
-
-    kVRegister,
-    kSIMD_FP_Register_8,
-    kSIMD_FP_Register_B = kSIMD_FP_Register_8,
-    kSIMD_FP_Register_16,
-    kSIMD_FP_Register_H = kSIMD_FP_Register_16,
-    kSIMD_FP_Register_32,
-    kSIMD_FP_Register_S = kSIMD_FP_Register_32,
-    kSIMD_FP_Register_64,
-    kSIMD_FP_Register_D = kSIMD_FP_Register_64,
-    kSIMD_FP_Register_128,
-    kSIMD_FP_Register_Q = kSIMD_FP_Register_128,
-
-    kInvalid
-  };
-
-  constexpr CPURegister(int code, int size, RegisterType type) : RegisterBase(code), reg_size_(size), reg_type_(type) {
-  }
-
-  static constexpr CPURegister Create(int code, int size, RegisterType type) {
-    return CPURegister(code, size, type);
-  }
-
-  // =====
-
-  static constexpr CPURegister X(int code) {
-    return CPURegister(code, 64, kRegister_64);
-  }
-
-  static constexpr CPURegister W(int code) {
-    return CPURegister(code, 32, kRegister_32);
-  }
-
-  static constexpr CPURegister Q(int code) {
-    return CPURegister(code, 128, kSIMD_FP_Register_128);
-  }
-
-  static constexpr CPURegister InvalidRegister() {
-    return CPURegister(0, 0, kInvalid);
-  }
-
-  // =====
-
-  bool Is(const CPURegister &reg) const {
-    return (reg.reg_code_ == this->reg_code_);
-  }
-
-  bool Is64Bits() const {
-    return reg_size_ == 64;
-  }
-
-  bool IsRegister() const {
-    return reg_type_ < kRegister;
-  }
-
-  bool IsVRegister() const {
-    return reg_type_ > kVRegister;
-  }
-
-  // =====
-
-  RegisterType type() const {
-    return reg_type_;
-  }
-
-  int32_t code() const {
-    return reg_code_;
-  };
-
-private:
-  RegisterType reg_type_;
-  int reg_size_;
-};
-
-typedef CPURegister Register;
-typedef CPURegister VRegister;
-
-// clang-format off
-#define GENERAL_REGISTER_CODE_LIST(R)                     \
-  R(0)  R(1)  R(2)  R(3)  R(4)  R(5)  R(6)  R(7)          \
-  R(8)  R(9)  R(10) R(11) R(12) R(13) R(14) R(15)         \
-  R(16) R(17) R(18) R(19) R(20) R(21) R(22) R(23)         \
-  R(24) R(25) R(26) R(27) R(28) R(29) R(30) R(31)
-
-#define DEFINE_REGISTER(register_class, name, ...) constexpr register_class name = register_class::Create(__VA_ARGS__)
-
-#define DEFINE_REGISTERS(N)                                                                                            \
-  DEFINE_REGISTER(Register, w##N, N, 32, CPURegister::kRegister_32);                                                                 \
-  DEFINE_REGISTER(Register, x##N, N, 64, CPURegister::kRegister_64);
-    GENERAL_REGISTER_CODE_LIST(DEFINE_REGISTERS)
-#undef DEFINE_REGISTERS
-
-#define DEFINE_VREGISTERS(N)  \
-  DEFINE_REGISTER(VRegister, b##N, N, 8, CPURegister::kSIMD_FP_Register_8);                                                                \
-  DEFINE_REGISTER(VRegister, h##N, N, 16, CPURegister::kSIMD_FP_Register_16);                                                                \
-  DEFINE_REGISTER(VRegister, s##N, N, 32, CPURegister::kSIMD_FP_Register_32);                                                                \
-  DEFINE_REGISTER(VRegister, d##N, N, 64, CPURegister::kSIMD_FP_Register_64);                                                                \
-  DEFINE_REGISTER(VRegister, q##N, N, 128, CPURegister::kSIMD_FP_Register_128);                                                                \
-GENERAL_REGISTER_CODE_LIST(DEFINE_VREGISTERS)
-#undef DEFINE_VREGISTERS
-
-#undef DEFINE_REGISTER
-// clang-format on
-
-// =====
-
-constexpr Register wzr = w31;
-constexpr Register xzr = x31;
-
-constexpr Register SP = x31;
-constexpr Register wSP = w31;
-constexpr Register FP = x29;
-constexpr Register wFP = w29;
-constexpr Register LR = x30;
-constexpr Register wLR = w30;
-
-} // namespace arm64
-} // namespace zz
-
-#define W(code) CPURegister::W(code)
-#define X(code) CPURegister::X(code)
-#define Q(code) CPURegister::Q(code)
-#define InvalidRegister CPURegister::InvalidRegister()
-
-#endif
diff --git a/loader/dobby/source/core/arch/x64/constants-x64.h b/loader/dobby/source/core/arch/x64/constants-x64.h
deleted file mode 100644
index d72f44f4..00000000
--- a/loader/dobby/source/core/arch/x64/constants-x64.h
+++ /dev/null
@@ -1,21 +0,0 @@
-#ifndef CORE_ARCH_CONSTANTS_X64_H
-#define CORE_ARCH_CONSTANTS_X64_H
-
-namespace zz {
-namespace x64 {
-
-enum ScaleFactor {
-  TIMES_1 = 0,
-  TIMES_2 = 1,
-  TIMES_4 = 2,
-  TIMES_8 = 3,
-  TIMES_16 = 4,
-  TIMES_HALF_WORD_SIZE = sizeof(void *) / 2 - 1
-};
-
-enum RexBits { REX_NONE = 0, REX_B = 1 << 0, REX_X = 1 << 1, REX_R = 1 << 2, REX_W = 1 << 3, REX_PREFIX = 1 << 6 };
-
-} // namespace x64
-} // namespace zz
-
-#endif
\ No newline at end of file
diff --git a/loader/dobby/source/core/arch/x64/registers-x64.h b/loader/dobby/source/core/arch/x64/registers-x64.h
deleted file mode 100644
index 4c7c612b..00000000
--- a/loader/dobby/source/core/arch/x64/registers-x64.h
+++ /dev/null
@@ -1,244 +0,0 @@
-#ifndef ARCH_X64_REGISTERS
-#define ARCH_X64_REGISTERS
-
-#include "core/arch/x64/constants-x64.h"
-#include "core/arch/Cpu.h"
-
-namespace zz {
-namespace x64 {
-
-#define GENERAL_REGISTERS(V)                                                                                           \
-  V(rax)                                                                                                               \
-  V(rcx)                                                                                                               \
-  V(rdx)                                                                                                               \
-  V(rbx)                                                                                                               \
-  V(rsp)                                                                                                               \
-  V(rbp)                                                                                                               \
-  V(rsi)                                                                                                               \
-  V(rdi)                                                                                                               \
-  V(r8)                                                                                                                \
-  V(r9)                                                                                                                \
-  V(r10)                                                                                                               \
-  V(r11)                                                                                                               \
-  V(r12)                                                                                                               \
-  V(r13)                                                                                                               \
-  V(r14)                                                                                                               \
-  V(r15)
-
-#define GENERAL_32_REGISTERS(V)                                                                                        \
-  V(eax)                                                                                                               \
-  V(ecx)                                                                                                               \
-  V(edx)                                                                                                               \
-  V(ebx)                                                                                                               \
-  V(esp)                                                                                                               \
-  V(ebp)                                                                                                               \
-  V(esi)                                                                                                               \
-  V(edi)
-
-#define GENERAL_16_REGISTERS(V)                                                                                        \
-  V(ax)                                                                                                                \
-  V(cx)                                                                                                                \
-  V(dx)                                                                                                                \
-  V(bx)                                                                                                                \
-  V(sp)                                                                                                                \
-  V(bp)                                                                                                                \
-  V(si)                                                                                                                \
-  V(di)
-
-#define GENERAL_8H_REGISTERS(V)                                                                                        \
-  V(ah)                                                                                                                \
-  V(ch)                                                                                                                \
-  V(dh)                                                                                                                \
-  V(bh)
-
-#define GENERAL_8L_REGISTERS(V)                                                                                        \
-  V(al)                                                                                                                \
-  V(cl)                                                                                                                \
-  V(dl)                                                                                                                \
-  V(bl)
-
-// clang-format off
-enum RegisterCode {
-#define REGISTER_CODE(R) kRegCode_##R,
-  kRegisterCodeStart8L = -1,
-  GENERAL_8L_REGISTERS(REGISTER_CODE)
-  kRegisterCodeStart8H = -1,
-  GENERAL_8H_REGISTERS(REGISTER_CODE)
-  kRegisterCodeStart16 = -1,
-  GENERAL_16_REGISTERS(REGISTER_CODE)
-  kRegisterCodeStart32 = -1,
-  GENERAL_32_REGISTERS(REGISTER_CODE)
-  kRegisterCodeStart64 = -1,
-  GENERAL_REGISTERS(REGISTER_CODE)
-#undef REGISTER_CODE
-  kRegAfterLast
-};
-// clang-format on
-
-class CPURegister : public RegisterBase {
-public:
-  enum RegisterType { kDefault, kInvalid };
-
-  constexpr CPURegister(int code, int size, RegisterType type) : RegisterBase(code), reg_size_(size), reg_type_(type) {
-  }
-
-  static constexpr CPURegister Create(int code, int size, RegisterType type) {
-    return CPURegister(code, size, type);
-  }
-
-  static constexpr CPURegister from_code(int code) {
-    return CPURegister(code, 0, kDefault);
-  }
-
-  static constexpr CPURegister InvalidRegister() {
-    return CPURegister(0, 0, kInvalid);
-  }
-
-  bool Is64Bits() const {
-    return reg_size_ == 64;
-  }
-
-  RegisterType type() const {
-    return reg_type_;
-  }
-
-public:
-  bool is_byte_register() const {
-    return reg_code_ <= 3;
-  }
-
-  // Return the high bit of the register code as a 0 or 1.  Used often
-  // when constructing the REX prefix byte.
-  int high_bit() const {
-    return reg_code_ >> 3;
-  }
-
-  // Return the 3 low bits of the register code.  Used when encoding registers
-  // in modR/M, SIB, and opcode bytes.
-  int low_bits() const {
-    return reg_code_ & 0x7;
-  }
-
-  int size() {
-    return reg_size_;
-  }
-
-private:
-  RegisterType reg_type_;
-  int reg_size_;
-};
-
-typedef CPURegister Register;
-
-#define DECLARE_REGISTER(R) constexpr Register R = Register::Create(kRegCode_##R, 64, CPURegister::kDefault);
-GENERAL_REGISTERS(DECLARE_REGISTER)
-#undef DECLARE_REGISTER
-
-#define DECLARE_REGISTER(R) constexpr Register R = Register::Create(kRegCode_##R, 8, CPURegister::kDefault);
-GENERAL_8H_REGISTERS(DECLARE_REGISTER)
-#undef DECLARE_REGISTER
-
-#define DECLARE_REGISTER(R) constexpr Register R = Register::Create(kRegCode_##R, 8, CPURegister::kDefault);
-GENERAL_8L_REGISTERS(DECLARE_REGISTER)
-#undef DECLARE_REGISTER
-
-#define DECLARE_REGISTER(R) constexpr Register R = Register::Create(kRegCode_##R, 16, CPURegister::kDefault);
-GENERAL_16_REGISTERS(DECLARE_REGISTER)
-#undef DECLARE_REGISTER
-
-#define DECLARE_REGISTER(R) constexpr Register R = Register::Create(kRegCode_##R, 32, CPURegister::kDefault);
-GENERAL_32_REGISTERS(DECLARE_REGISTER)
-#undef DECLARE_REGISTER
-
-#ifdef _WIN64
-// Windows calling convention
-constexpr Register arg_reg_1 = rcx;
-constexpr Register arg_reg_2 = rdx;
-constexpr Register arg_reg_3 = r8;
-constexpr Register arg_reg_4 = r9;
-#else
-// AMD64 calling convention
-constexpr Register arg_reg_1 = rdi;
-constexpr Register arg_reg_2 = rsi;
-constexpr Register arg_reg_3 = rdx;
-constexpr Register arg_reg_4 = rcx;
-#endif // _WIN64
-
-#define DOUBLE_REGISTERS(V)                                                                                            \
-  V(xmm0)                                                                                                              \
-  V(xmm1)                                                                                                              \
-  V(xmm2)                                                                                                              \
-  V(xmm3)                                                                                                              \
-  V(xmm4)                                                                                                              \
-  V(xmm5)                                                                                                              \
-  V(xmm6)                                                                                                              \
-  V(xmm7)                                                                                                              \
-  V(xmm8)                                                                                                              \
-  V(xmm9)                                                                                                              \
-  V(xmm10)                                                                                                             \
-  V(xmm11)                                                                                                             \
-  V(xmm12)                                                                                                             \
-  V(xmm13)                                                                                                             \
-  V(xmm14)                                                                                                             \
-  V(xmm15)
-
-#define FLOAT_REGISTERS DOUBLE_REGISTERS
-#define SIMD128_REGISTERS DOUBLE_REGISTERS
-
-constexpr bool kPadArguments = false;
-constexpr bool kSimpleFPAliasing = true;
-constexpr bool kSimdMaskRegisters = false;
-
-enum DoubleRegisterCode {
-#define REGISTER_CODE(R) kDoubleCode_##R,
-  DOUBLE_REGISTERS(REGISTER_CODE)
-#undef REGISTER_CODE
-      kDoubleAfterLast
-};
-
-class XMMRegister : public RegisterBase {
-public:
-  enum RegisterType { kInvalid };
-
-  constexpr XMMRegister(int code) : RegisterBase(code) {
-  }
-
-  static constexpr XMMRegister Create(int code) {
-    return XMMRegister(code);
-  }
-
-  static constexpr XMMRegister InvalidRegister() {
-    return XMMRegister(0);
-  }
-
-public:
-  // Return the high bit of the register code as a 0 or 1.  Used often
-  // when constructing the REX prefix byte.
-  int high_bit() const {
-    return reg_code_ >> 3;
-  }
-  // Return the 3 low bits of the register code.  Used when encoding registers
-  // in modR/M, SIB, and opcode bytes.
-  int low_bits() const {
-    return reg_code_ & 0x7;
-  }
-
-private:
-};
-
-typedef XMMRegister FloatRegister;
-
-typedef XMMRegister DoubleRegister;
-
-typedef XMMRegister Simd128Register;
-
-typedef XMMRegister FPURegister;
-
-#define DECLARE_REGISTER(R) constexpr DoubleRegister R = DoubleRegister::Create(kDoubleCode_##R);
-DOUBLE_REGISTERS(DECLARE_REGISTER)
-#undef DECLARE_REGISTER
-
-} // namespace x64
-} // namespace zz
-
-#endif
diff --git a/loader/dobby/source/core/arch/x86/constants-x86.h b/loader/dobby/source/core/arch/x86/constants-x86.h
deleted file mode 100644
index a243a76d..00000000
--- a/loader/dobby/source/core/arch/x86/constants-x86.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef CORE_ARCH_CONSTANTS_X86_H
-#define CORE_ARCH_CONSTANTS_X86_H
-
-namespace zz {
-namespace x86 {
-
-enum ScaleFactor {
-  TIMES_1 = 0,
-  TIMES_2 = 1,
-  TIMES_4 = 2,
-  TIMES_8 = 3,
-  TIMES_16 = 4,
-  TIMES_HALF_WORD_SIZE = sizeof(void *) / 2 - 1
-};
-
-} // namespace x86
-} // namespace zz
-
-#endif
\ No newline at end of file
diff --git a/loader/dobby/source/core/arch/x86/cpu-x86.cc b/loader/dobby/source/core/arch/x86/cpu-x86.cc
deleted file mode 100644
index ce241656..00000000
--- a/loader/dobby/source/core/arch/x86/cpu-x86.cc
+++ /dev/null
@@ -1,99 +0,0 @@
-#include "platform_macro.h"
-#if defined(TARGET_ARCH_IA32) || defined(TARGET_ARCH_X64)
-
-#include "./cpu-x86.h"
-#include "xnucxx/LiteMemOpt.h"
-
-X86CpuInfo::X86CpuInfo() {
-  icache_line_size_ = 0;
-  dcache_line_size_ = 0;
-  has_fpu_ = false;
-  has_cmov_ = false;
-  has_sahf_ = false;
-  has_mmx_ = false;
-  has_sse_ = false;
-  has_sse2_ = false;
-  has_sse3_ = false;
-  has_ssse3_ = false;
-  has_sse41_ = false;
-
-  has_sse42_ = false;
-  has_osxsave_ = false;
-  has_avx_ = false;
-  has_fma3_ = false;
-  has_bmi1_ = false;
-  has_bmi2_ = false;
-  has_lzcnt_ = false;
-  has_popcnt_ = false;
-  is_atom_ = false;
-
-  _memcpy(vendor_, (void *)"Unknown", 8);
-#if V8_HOST_ARCH_IA32 || V8_HOST_ARCH_X64
-  int cpu_info[4];
-  __cpuid(cpu_info, 0);
-  unsigned num_ids = cpu_info[0];
-  std::swap(cpu_info[2], cpu_info[3]);
-  _memcpy(vendor_, cpu_info + 1, 12);
-  vendor_[12] = '\0';
-
-  // Interpret CPU feature information.
-  if (num_ids > 0) {
-    __cpuid(cpu_info, 1);
-    stepping_ = cpu_info[0] & 0xF;
-    model_ = ((cpu_info[0] >> 4) & 0xF) + ((cpu_info[0] >> 12) & 0xF0);
-    family_ = (cpu_info[0] >> 8) & 0xF;
-    type_ = (cpu_info[0] >> 12) & 0x3;
-    ext_model_ = (cpu_info[0] >> 16) & 0xF;
-    ext_family_ = (cpu_info[0] >> 20) & 0xFF;
-    has_fpu_ = (cpu_info[3] & 0x00000001) != 0;
-    has_cmov_ = (cpu_info[3] & 0x00008000) != 0;
-    has_mmx_ = (cpu_info[3] & 0x00800000) != 0;
-    has_sse_ = (cpu_info[3] & 0x02000000) != 0;
-    has_sse2_ = (cpu_info[3] & 0x04000000) != 0;
-    has_sse3_ = (cpu_info[2] & 0x00000001) != 0;
-    has_ssse3_ = (cpu_info[2] & 0x00000200) != 0;
-    has_sse41_ = (cpu_info[2] & 0x00080000) != 0;
-    has_sse42_ = (cpu_info[2] & 0x00100000) != 0;
-    has_popcnt_ = (cpu_info[2] & 0x00800000) != 0;
-    has_osxsave_ = (cpu_info[2] & 0x08000000) != 0;
-    has_avx_ = (cpu_info[2] & 0x10000000) != 0;
-    has_fma3_ = (cpu_info[2] & 0x00001000) != 0;
-    if (family_ == 0x6) {
-      switch (model_) {
-      case 0x1C: // SLT
-      case 0x26:
-      case 0x36:
-      case 0x27:
-      case 0x35:
-      case 0x37: // SLM
-      case 0x4A:
-      case 0x4D:
-      case 0x4C: // AMT
-      case 0x6E:
-        is_atom_ = true;
-      }
-    }
-  }
-
-  // There are separate feature flags for VEX-encoded GPR instructions.
-  if (num_ids >= 7) {
-    __cpuid(cpu_info, 7);
-    has_bmi1_ = (cpu_info[1] & 0x00000008) != 0;
-    has_bmi2_ = (cpu_info[1] & 0x00000100) != 0;
-  }
-
-  // Query extended IDs.
-  __cpuid(cpu_info, 0x80000000);
-  unsigned num_ext_ids = cpu_info[0];
-
-  // Interpret extended CPU feature information.
-  if (num_ext_ids > 0x80000000) {
-    __cpuid(cpu_info, 0x80000001);
-    has_lzcnt_ = (cpu_info[2] & 0x00000020) != 0;
-    // SAHF must be probed in long mode.
-    has_sahf_ = (cpu_info[2] & 0x00000001) != 0;
-  }
-#endif
-}
-
-#endif
\ No newline at end of file
diff --git a/loader/dobby/source/core/arch/x86/cpu-x86.h b/loader/dobby/source/core/arch/x86/cpu-x86.h
deleted file mode 100644
index 68fd62c3..00000000
--- a/loader/dobby/source/core/arch/x86/cpu-x86.h
+++ /dev/null
@@ -1,120 +0,0 @@
-#ifndef CORE_ARCH_CPU_X86_H
-#define CORE_ARCH_CPU_X86_H
-
-#include "core/arch/Cpu.h"
-
-class X86CpuInfo {
-
-public:
-  X86CpuInfo();
-
-public:
-  // General features
-  bool has_fpu() const {
-    return has_fpu_;
-  }
-  int icache_line_size() const {
-    return icache_line_size_;
-  }
-  int dcache_line_size() const {
-    return dcache_line_size_;
-  }
-
-  static const int UNKNOWN_CACHE_LINE_SIZE = 0;
-
-  // x86 features
-  bool has_cmov() const {
-    return has_cmov_;
-  }
-  bool has_sahf() const {
-    return has_sahf_;
-  }
-  bool has_mmx() const {
-    return has_mmx_;
-  }
-  bool has_sse() const {
-    return has_sse_;
-  }
-  bool has_sse2() const {
-    return has_sse2_;
-  }
-  bool has_sse3() const {
-    return has_sse3_;
-  }
-  bool has_ssse3() const {
-    return has_ssse3_;
-  }
-  bool has_sse41() const {
-    return has_sse41_;
-  }
-  bool has_sse42() const {
-    return has_sse42_;
-  }
-  bool has_osxsave() const {
-    return has_osxsave_;
-  }
-  bool has_avx() const {
-    return has_avx_;
-  }
-  bool has_fma3() const {
-    return has_fma3_;
-  }
-  bool has_bmi1() const {
-    return has_bmi1_;
-  }
-  bool has_bmi2() const {
-    return has_bmi2_;
-  }
-  bool has_lzcnt() const {
-    return has_lzcnt_;
-  }
-  bool has_popcnt() const {
-    return has_popcnt_;
-  }
-  bool is_atom() const {
-    return is_atom_;
-  }
-
-private:
-  char vendor_[13];
-
-  // General features
-  int icache_line_size_;
-  int dcache_line_size_;
-  bool has_fpu_;
-
-  // x86 features
-  bool has_cmov_;
-  bool has_sahf_;
-  bool has_mmx_;
-  bool has_sse_;
-  bool has_sse2_;
-  bool has_sse3_;
-  bool has_ssse3_;
-  bool has_sse41_;
-  bool has_sse42_;
-  bool has_osxsave_;
-  bool has_avx_;
-  bool has_fma3_;
-  bool has_bmi1_;
-  bool has_bmi2_;
-  bool has_lzcnt_;
-  bool has_popcnt_;
-  bool is_atom_;
-};
-
-class X86CpuFeatures : public CpuFeatures {
-public:
-  static bool sse2_supported() {
-    return X86CpuInfo().has_sse2();
-  }
-  static bool sse4_1_supported() {
-    return X86CpuInfo().has_sse41();
-  }
-
-private:
-  static bool sse2_supported_;
-  static bool sse4_1_supported_;
-};
-
-#endif
\ No newline at end of file
diff --git a/loader/dobby/source/core/arch/x86/registers-x86.h b/loader/dobby/source/core/arch/x86/registers-x86.h
deleted file mode 100644
index 65b06b2b..00000000
--- a/loader/dobby/source/core/arch/x86/registers-x86.h
+++ /dev/null
@@ -1,124 +0,0 @@
-#ifndef ARCH_IA32_REGISTERS
-#define ARCH_IA32_REGISTERS
-
-#include "core/arch/x86/constants-x86.h"
-#include "core/arch/Cpu.h"
-
-namespace zz {
-namespace x86 {
-
-#define GENERAL_REGISTERS(V)                                                                                           \
-  V(eax)                                                                                                               \
-  V(ecx)                                                                                                               \
-  V(edx)                                                                                                               \
-  V(ebx)                                                                                                               \
-  V(esp)                                                                                                               \
-  V(ebp)                                                                                                               \
-  V(esi)                                                                                                               \
-  V(edi)
-
-enum RegisterCode {
-#define REGISTER_CODE(R) kRegCode_##R,
-  GENERAL_REGISTERS(REGISTER_CODE)
-#undef REGISTER_CODE
-      kRegAfterLast
-};
-
-class CPURegister : public RegisterBase {
-public:
-  enum RegisterType { kDefault, kInvalid };
-
-  constexpr CPURegister(int code, int size, RegisterType type) : RegisterBase(code), reg_size_(size), reg_type_(type) {
-  }
-
-  static constexpr CPURegister Create(int code, int size, RegisterType type) {
-    return CPURegister(code, size, type);
-  }
-
-  static constexpr CPURegister from_code(int code) {
-    return CPURegister(code, 0, kDefault);
-  }
-
-  static constexpr CPURegister InvalidRegister() {
-    return CPURegister(0, 0, kInvalid);
-  }
-
-  RegisterType type() const {
-    return reg_type_;
-  }
-
-public:
-  bool is_byte_register() const {
-    return reg_code_ <= 3;
-  }
-
-  int size() {
-    return reg_size_;
-  }
-
-private:
-  RegisterType reg_type_;
-  int reg_size_;
-};
-
-typedef CPURegister Register;
-
-#define DEFINE_REGISTER(R) constexpr Register R = Register::Create(kRegCode_##R, 32, CPURegister::kDefault);
-GENERAL_REGISTERS(DEFINE_REGISTER)
-#undef DEFINE_REGISTER
-
-#define DOUBLE_REGISTERS(V)                                                                                            \
-  V(xmm0)                                                                                                              \
-  V(xmm1)                                                                                                              \
-  V(xmm2)                                                                                                              \
-  V(xmm3)                                                                                                              \
-  V(xmm4)                                                                                                              \
-  V(xmm5)                                                                                                              \
-  V(xmm6)                                                                                                              \
-  V(xmm7)
-
-#define FLOAT_REGISTERS DOUBLE_REGISTERS
-#define SIMD128_REGISTERS DOUBLE_REGISTERS
-
-constexpr bool kPadArguments = false;
-constexpr bool kSimpleFPAliasing = true;
-constexpr bool kSimdMaskRegisters = false;
-
-enum DoubleRegisterCode {
-#define REGISTER_CODE(R) kDoubleCode_##R,
-  DOUBLE_REGISTERS(REGISTER_CODE)
-#undef REGISTER_CODE
-      kDoubleAfterLast
-};
-
-class XMMRegister : public RegisterBase {
-public:
-  enum RegisterType { kInvalid };
-
-  constexpr XMMRegister(int code) : RegisterBase(code) {
-  }
-
-  static constexpr XMMRegister Create(int code) {
-    return XMMRegister(code);
-  }
-
-  static constexpr XMMRegister InvalidRegister() {
-    return XMMRegister(0);
-  }
-
-private:
-};
-
-typedef XMMRegister FloatRegister;
-typedef XMMRegister DoubleRegister;
-typedef XMMRegister Simd128Register;
-typedef XMMRegister FPURegister;
-
-#define DEFINE_REGISTER(R) constexpr DoubleRegister R = DoubleRegister::Create(kDoubleCode_##R);
-DOUBLE_REGISTERS(DEFINE_REGISTER)
-#undef DEFINE_REGISTER
-
-} // namespace x86
-} // namespace zz
-
-#endif
diff --git a/loader/dobby/source/core/modules/assembler/assembler-arch.h b/loader/dobby/source/core/modules/assembler/assembler-arch.h
deleted file mode 100644
index 23ae9c3b..00000000
--- a/loader/dobby/source/core/modules/assembler/assembler-arch.h
+++ /dev/null
@@ -1,28 +0,0 @@
-#ifndef CORE_ASSEMBLER_ARCH_H
-#define CORE_ASSEMBLER_ARCH_H
-
-#include "src/assembler.h"
-
-#if 0
-#if TARGET_ARCH_IA32
-#include "src/ia32/assembler-ia32.h"
-#elif TARGET_ARCH_X64
-#include "src/x64/assembler-x64.h"
-#elif TARGET_ARCH_ARM64
-#include "src/arm64/assembler-arm64.h"
-#elif TARGET_ARCH_ARM
-#include "src/arm/assembler-arm.h"
-#elif TARGET_ARCH_PPC
-#include "src/ppc/assembler-ppc.h"
-#elif TARGET_ARCH_MIPS
-#include "src/mips/assembler-mips.h"
-#elif TARGET_ARCH_MIPS64
-#include "src/mips64/assembler-mips64.h"
-#elif TARGET_ARCH_S390
-#include "src/s390/assembler-s390.h"
-#else
-#error Unknown architecture.
-#endif
-#endif
-
-#endif
diff --git a/loader/dobby/source/core/modules/assembler/assembler-arm.cc b/loader/dobby/source/core/modules/assembler/assembler-arm.cc
deleted file mode 100644
index 25f9d3e5..00000000
--- a/loader/dobby/source/core/modules/assembler/assembler-arm.cc
+++ /dev/null
@@ -1,20 +0,0 @@
-#include "platform_macro.h"
-#if TARGET_ARCH_ARM
-
-#include "core/modules/assembler/assembler-arm.h"
-
-namespace zz {
-namespace arm {
-
-void Assembler::EmitARMInst(arm_inst_t instr) {
-  buffer_->EmitARMInst(instr);
-}
-
-void Assembler::EmitAddress(uint32_t value) {
-  buffer_->Emit32(value);
-}
-
-} // namespace arm
-} // namespace zz
-
-#endif
\ No newline at end of file
diff --git a/loader/dobby/source/core/modules/assembler/assembler-arm.h b/loader/dobby/source/core/modules/assembler/assembler-arm.h
deleted file mode 100644
index c4a87e89..00000000
--- a/loader/dobby/source/core/modules/assembler/assembler-arm.h
+++ /dev/null
@@ -1,490 +0,0 @@
-#ifndef CORE_ASSEMBLER_ARM_H
-#define CORE_ASSEMBLER_ARM_H
-
-#include "common_header.h"
-
-#include "core/arch/arm/constants-arm.h"
-#include "core/arch/arm/registers-arm.h"
-#include "core/modules/assembler/assembler.h"
-
-#include "MemoryAllocator/CodeBuffer/code-buffer-arm.h"
-
-#include "xnucxx/LiteMutableArray.h"
-#include "xnucxx/LiteIterator.h"
-
-#include <math.h>
-
-namespace zz {
-namespace arm {
-
-// ARM design had a 3-stage pipeline (fetch-decode-execute)
-#define ARM_PC_OFFSET 8
-#define Thumb_PC_OFFSET 4
-
-// define instruction length
-#define ARM_INST_LEN 4
-#define Thumb1_INST_LEN 2
-#define Thumb2_INST_LEN 4
-
-// Thumb instructions address is odd
-#define THUMB_ADDRESS_FLAG 1
-
-constexpr Register TMP_REG_0 = r12;
-
-constexpr Register VOLATILE_REGISTER = r12;
-
-#define Rd(rd) (rd.code() << kRdShift)
-#define Rt(rt) (rt.code() << kRtShift)
-#define Rn(rn) (rn.code() << kRnShift)
-#define Rm(rm) (rm.code() << kRmShift)
-
-// ===== PseudoLabel =====
-
-class PseudoLabel : public Label {
-public:
-  enum PseudoLabelType { kLdrLiteral };
-
-  typedef struct _PseudoLabelInstruction {
-    int position_;
-    int type_;
-  } PseudoLabelInstruction;
-
-public:
-  PseudoLabel(void) : instructions_(8) {
-  }
-
-  ~PseudoLabel(void) {
-    for (size_t i = 0; i < instructions_.getCount(); i++) {
-      PseudoLabelInstruction *item = (PseudoLabelInstruction *)instructions_.getObject(i);
-      delete item;
-    }
-  }
-
-  bool has_confused_instructions() {
-    return instructions_.getCount() > 0;
-  }
-
-  void link_confused_instructions(CodeBuffer *buffer = nullptr) {
-    if (!buffer)
-      UNREACHABLE();
-    CodeBuffer *_buffer = buffer;
-
-    for (size_t i = 0; i < instructions_.getCount(); i++) {
-      PseudoLabelInstruction *instruction = (PseudoLabelInstruction *)instructions_.getObject(i);
-
-      int32_t offset = pos() - instruction->position_;
-      const int32_t inst32 = _buffer->LoadARMInst(instruction->position_);
-      int32_t encoded = 0;
-
-      switch (instruction->type_) {
-      case kLdrLiteral: {
-        encoded = inst32 & 0xfffff000;
-        uint32_t imm12 = offset - ARM_PC_OFFSET;
-        ASSERT(CheckSignLength(imm12));
-        encoded = encoded | imm12;
-      } break;
-      default:
-        UNREACHABLE();
-        break;
-      }
-      _buffer->RewriteARMInst(instruction->position_, encoded);
-    }
-  };
-
-  // compatible for thumb with int type
-  void link_to(int pos, int type) {
-    PseudoLabelInstruction *instruction = new PseudoLabelInstruction;
-    instruction->position_ = pos;
-    instruction->type_ = type;
-    instructions_.pushObject((LiteObject *)instruction);
-  }
-
-protected:
-  LiteMutableArray instructions_;
-};
-
-// reloc
-class RelocLabelEntry : public PseudoLabel {
-public:
-  explicit RelocLabelEntry(uint32_t data) : data_size_(0) {
-    data_ = data;
-  }
-
-  uint32_t data() {
-    return data_;
-  }
-
-  void fixup_data(uint32_t data) {
-    data_ = data;
-  }
-
-private:
-  uint32_t data_;
-
-  int data_size_;
-};
-
-// ================================================================
-// Operand
-
-class Operand {
-  friend class OpEncode;
-
-public:
-  Operand(int immediate) : imm_(immediate), rm_(no_reg), shift_(LSL), shift_imm_(0), rs_(no_reg) {
-  }
-
-  Operand(Register rm) : imm_(0), rm_(rm), shift_(LSL), shift_imm_(0), rs_(no_reg) {
-  }
-
-  Operand(Register rm, Shift shift, uint32_t shift_imm)
-      : imm_(0), rm_(rm), shift_(shift), shift_imm_(shift_imm), rs_(no_reg) {
-  }
-
-  Operand(Register rm, Shift shift, Register rs) : imm_(0), rm_(rm), shift_(shift), shift_imm_(0), rs_(rs) {
-  }
-
-public:
-  int GetImmediate() const {
-    return imm_;
-  }
-
-private:
-  Register rm_;
-  Register rs_;
-
-  Shift shift_;
-  int shift_imm_;
-
-  int imm_;
-
-private:
-  friend class EncodeUtility;
-};
-
-// ================================================================
-// MemOperand
-
-class MemOperand {
-  friend class OpEncode;
-
-public:
-  MemOperand(Register rn, int32_t offset = 0, AddrMode addrmode = Offset)
-      : rn_(rn), offset_(offset), rm_(no_reg), shift_(LSL), shift_imm_(0), addrmode_(addrmode) {
-  }
-
-  MemOperand(Register rn, Register rm, AddrMode addrmode = Offset)
-      : rn_(rn), offset_(0), rm_(rm), shift_(LSL), shift_imm_(0), addrmode_(addrmode) {
-  }
-
-  MemOperand(Register rn, Register rm, Shift shift, uint32_t shift_imm, AddrMode addrmode = Offset)
-      : rn_(rn), offset_(0), rm_(rm), shift_(shift), shift_imm_(shift_imm), addrmode_(addrmode) {
-  }
-
-  const Register &rn() const {
-    return rn_;
-  }
-  const Register &rm() const {
-    return rm_;
-  }
-  int32_t offset() const {
-    return offset_;
-  }
-
-  bool IsImmediateOffset() const {
-    return (addrmode_ == Offset);
-  }
-  bool IsRegisterOffset() const {
-    return (addrmode_ == Offset);
-  }
-  bool IsPreIndex() const {
-    return addrmode_ == PreIndex;
-  }
-  bool IsPostIndex() const {
-    return addrmode_ == PostIndex;
-  }
-
-private:
-  Register rn_; // base
-  Register rm_; // register offset
-
-  int32_t offset_; // valid if rm_ == no_reg
-
-  Shift shift_;
-  uint32_t shift_imm_; // valid if rm_ != no_reg && rs_ == no_reg
-
-  AddrMode addrmode_; // bits P, U, and W
-};
-
-class OpEncode {
-public:
-  static uint32_t MemOperand(const MemOperand operand) {
-    uint32_t encoding = 0;
-    if (operand.rm_.IsValid()) {
-      UNREACHABLE();
-    }
-
-    // sign
-    uint32_t U = 0;
-    if (operand.offset_ >= 0) {
-      U = (1 << 23);
-    }
-    encoding |= U;
-
-    // offset
-    encoding |= bits(abs(operand.offset_), 0, 11);
-
-    // addr mode
-    uint32_t P, W;
-    if (operand.addrmode_ == Offset) {
-      P = 1;
-      W = 0;
-    } else if (operand.addrmode_ == PostIndex) {
-      P = 0;
-      W = 0;
-    } else if (operand.addrmode_ == PreIndex) {
-      P = 1;
-      W = 1;
-    }
-    encoding |= ((P << 24) | (W << 21));
-
-    // rn
-    encoding |= Rn(operand.rn_);
-
-    return encoding;
-  }
-
-  static uint32_t Operand(const Operand operand) {
-    uint32_t encoding = 0;
-    if (operand.rm_.IsValid()) {
-      encoding = static_cast<uint32_t>(operand.rm_.code());
-    } else {
-      encoding = operand.GetImmediate();
-    }
-
-    return encoding;
-  }
-};
-
-// ================================================================
-// Assembler
-
-enum ExecuteState { ARMExecuteState, ThumbExecuteState };
-
-class Assembler : public AssemblerBase {
-private:
-  ExecuteState execute_state_;
-
-public:
-  Assembler(void *address) : AssemblerBase(address) {
-    execute_state_ = ARMExecuteState;
-    buffer_ = new CodeBuffer(64);
-  }
-
-  // shared_ptr is better choice
-  // but we can't use it at kernelspace
-  Assembler(void *address, CodeBuffer *buffer) : AssemblerBase(address) {
-    execute_state_ = ARMExecuteState;
-    buffer_ = buffer;
-  }
-
-  void ClearCodeBuffer() {
-    buffer_ = NULL;
-  }
-
-public:
-  void SetExecuteState(ExecuteState state) {
-    execute_state_ = state;
-  }
-  ExecuteState GetExecuteState() {
-    return execute_state_;
-  }
-
-  void SetRealizedAddress(void *address) {
-    DCHECK_EQ(0, reinterpret_cast<uint64_t>(address) % 4);
-    AssemblerBase::SetRealizedAddress(address);
-  }
-
-  void EmitARMInst(arm_inst_t instr);
-
-  void EmitAddress(uint32_t value);
-
-public:
-  void sub(Register rd, Register rn, const Operand &operand) {
-    uint32_t encoding = B25 | B22;
-    add_sub(encoding, AL, rd, rn, operand);
-  }
-
-  void add(Register rd, Register rn, const Operand &operand) {
-    uint32_t encoding = B25 | B23;
-    add_sub(encoding, AL, rd, rn, operand);
-  }
-
-  void add_sub(uint32_t encoding, Condition cond, Register rd, Register rn, const Operand &operand) {
-    encoding |= (cond << kConditionShift);
-
-    uint32_t imm = operand.GetImmediate();
-    encoding |= imm;
-
-    encoding |= Rd(rd);
-
-    encoding |= Rn(rn);
-
-    buffer_->EmitARMInst(encoding);
-  }
-
-  void ldr(Register rt, const MemOperand &operand) {
-    uint32_t encoding = B20 | B26;
-    load_store(encoding, AL, rt, operand);
-  }
-
-  void str(Register rt, const MemOperand &operand) {
-    uint32_t encoding = B26;
-    load_store(encoding, AL, rt, operand);
-  }
-
-  void load_store(uint32_t encoding, Condition cond, Register rt, const MemOperand &operand) {
-    encoding |= (cond << kConditionShift);
-    encoding |= Rt(rt) | OpEncode::MemOperand(operand);
-    buffer_->EmitARMInst(encoding);
-  }
-
-  void mov(Register rd, const Operand &operand) {
-    mov(AL, rd, operand);
-  }
-
-  void mov(Condition cond, Register rd, const Operand &operand) {
-    uint32_t encoding = 0x01a00000;
-    encoding |= (cond << kConditionShift);
-    encoding |= Rd(rd) | OpEncode::Operand(operand);
-    buffer_->EmitARMInst(encoding);
-  }
-
-  // Branch instructions.
-  void b(int branch_offset) {
-    b(AL, branch_offset);
-  }
-  void b(Condition cond, int branch_offset) {
-    uint32_t encoding = 0xa000000;
-    encoding |= (cond << kConditionShift);
-    uint32_t imm24 = bits(branch_offset >> 2, 0, 23);
-    encoding |= imm24;
-    buffer_->EmitARMInst(encoding);
-  }
-
-  void bl(int branch_offset) {
-    bl(AL, branch_offset);
-  }
-  void bl(Condition cond, int branch_offset) {
-    uint32_t encoding = 0xb000000;
-    encoding |= (cond << kConditionShift);
-    uint32_t imm24 = bits(branch_offset >> 2, 0, 23);
-    encoding |= imm24;
-    buffer_->EmitARMInst(encoding);
-  }
-
-  void blx(int branch_offset) {
-    UNIMPLEMENTED();
-  }
-  void blx(Register target, Condition cond = AL) {
-    UNIMPLEMENTED();
-  }
-  void bx(Register target, Condition cond = AL) {
-    UNIMPLEMENTED();
-  }
-
-}; // namespace arm
-
-// ================================================================
-// TurboAssembler
-
-class TurboAssembler : public Assembler {
-public:
-  TurboAssembler(void *address) : Assembler(address) {
-    data_labels_ = NULL;
-  }
-
-  ~TurboAssembler() {
-    if (data_labels_) {
-      for (size_t i = 0; i < data_labels_->getCount(); i++) {
-        RelocLabelEntry *label = (RelocLabelEntry *)data_labels_->getObject(i);
-        delete label;
-      }
-
-      delete data_labels_;
-    }
-  }
-
-  TurboAssembler(void *address, CodeBuffer *buffer) : Assembler(address, buffer) {
-    data_labels_ = NULL;
-  }
-
-  void Ldr(Register rt, PseudoLabel *label) {
-    if (label->is_bound()) {
-      int offset = label->pos() - buffer_->getSize();
-      ldr(rt, MemOperand(pc, offset));
-    } else {
-      // record this ldr, and fix later.
-      label->link_to(buffer_->getSize(), PseudoLabel::kLdrLiteral);
-      ldr(rt, MemOperand(pc, 0));
-    }
-  }
-
-  void CallFunction(ExternalReference function) {
-    // trick: use bl to replace lr register
-    bl(0);
-    b(4);
-    ldr(pc, MemOperand(pc, -4));
-    buffer_->Emit32((uint32_t)function.address());
-  }
-
-  void Move32Immeidate(Register rd, const Operand &x, Condition cond = AL) {
-  }
-
-  // ================================================================
-  // RelocLabelEntry
-
-  void PseudoBind(PseudoLabel *label) {
-    if (label->is_unused() == true) {
-      const uint32_t bound_pc = buffer_->getSize();
-      label->bind_to(bound_pc);
-    }
-    // If some instructions have been wrote, before the label bound, we need link these `confused` instructions
-    if (label->has_confused_instructions()) {
-      label->link_confused_instructions(this->GetCodeBuffer());
-    }
-  }
-
-  void RelocBindFixup(RelocLabelEntry *label) {
-    buffer_->RewriteAddr(label->pos(), label->data());
-  }
-
-  void RelocBind() {
-    if (data_labels_ == NULL)
-      return;
-    for (size_t i = 0; i < data_labels_->getCount(); i++) {
-      RelocLabelEntry *label = (RelocLabelEntry *)data_labels_->getObject(i);
-      PseudoBind(label);
-      EmitAddress(label->data());
-    }
-  }
-
-  void AppendRelocLabelEntry(RelocLabelEntry *label) {
-    if (data_labels_ == NULL) {
-      data_labels_ = new LiteMutableArray(8);
-    }
-    data_labels_->pushObject((LiteObject *)label);
-  }
-
-  LiteMutableArray *GetLabels() {
-    return data_labels_;
-  }
-
-private:
-  LiteMutableArray *data_labels_;
-};
-
-} // namespace arm
-} // namespace zz
-
-#endif
diff --git a/loader/dobby/source/core/modules/assembler/assembler-arm64.cc b/loader/dobby/source/core/modules/assembler/assembler-arm64.cc
deleted file mode 100644
index 0b83ce43..00000000
--- a/loader/dobby/source/core/modules/assembler/assembler-arm64.cc
+++ /dev/null
@@ -1,87 +0,0 @@
-#include "platform_macro.h"
-#if TARGET_ARCH_ARM64
-
-#include "core/modules/assembler/assembler-arm64.h"
-
-namespace zz {
-namespace arm64 {
-
-void Assembler::Emit(int32_t value) {
-  buffer_->EmitInst(value);
-}
-
-void Assembler::EmitInt64(int64_t value) {
-  buffer_->Emit64(value);
-}
-
-void Assembler::bind(Label *label) {
-  const intptr_t bound_pc = pc_offset();
-  while (label->is_linked()) {
-    int linkpos = label->pos();
-    int32_t instr = buffer_->LoadInst(linkpos);
-
-    int prevlinkpos = 0;
-    if ((instr & UnconditionalBranchMask) == UnconditionalBranchFixed) {
-      int32_t imm26 = 0;
-
-      // fix the b-instr
-      int offset = bound_pc - linkpos;
-      imm26 = bits(offset >> 2, 0, 25);
-      int32_t rewrite_inst = (instr & 0xfc000000) | LeftShift(imm26, 26, 0);
-      buffer_->FixBindLabel(linkpos, rewrite_inst);
-
-      // caculate next label
-      imm26 = bits(instr, 0, 25);
-      int next_label_offset = imm26 << 2;
-      prevlinkpos = linkpos - next_label_offset;
-    }
-
-    if ((linkpos - prevlinkpos) == kStartOfLabelLinkChain) {
-      // AKA pos_ = 0;
-      label->link_to(-1);
-    } else {
-      // AKA pos_ = prevlinkpos
-      label->link_to(prevlinkpos);
-    }
-  }
-  label->bind_to(bound_pc);
-}
-
-int Assembler::LinkAndGetByteOffsetTo(Label *label) {
-  int offset;
-
-  if (label->is_bound()) {
-
-    // The label is bound, so it does not need to be updated. Referring
-    // instructions must link directly to the label as they will not be
-    // updated.
-    //
-    // In this case, label->pos() returns the offset of the label from the
-    // start of the buffer.
-    //
-    // Note that offset can be zero for self-referential instructions. (This
-    // could be useful for ADR, for example.)
-    offset = label->pos() - pc_offset();
-  } else {
-    if (label->is_linked()) {
-      // The label is linked, so the referring instruction should be added onto
-      // the end of the label's link chain.
-      //
-      // In this case, label->pos() returns the offset of the last linked
-      // instruction from the start of the buffer.
-      offset = label->pos() - pc_offset();
-    } else {
-      // The label is unused, so it now becomes linked and the referring
-      // instruction is at the start of the new link chain.
-      offset = kStartOfLabelLinkChain;
-    }
-    // The instruction at pc is now the last link in the label's chain.
-    label->link_to(pc_offset());
-  }
-  return offset;
-}
-
-} // namespace arm64
-} // namespace zz
-
-#endif
\ No newline at end of file
diff --git a/loader/dobby/source/core/modules/assembler/assembler-arm64.h b/loader/dobby/source/core/modules/assembler/assembler-arm64.h
deleted file mode 100644
index 4aeb4c01..00000000
--- a/loader/dobby/source/core/modules/assembler/assembler-arm64.h
+++ /dev/null
@@ -1,699 +0,0 @@
-#ifndef CORE_ASSEMBLER_ARM64_H
-#define CORE_ASSEMBLER_ARM64_H
-
-#include "common_header.h"
-
-#include "core/arch/arm64/constants-arm64.h"
-#include "core/arch/arm64/registers-arm64.h"
-#include "core/modules/assembler/assembler.h"
-
-#include "MemoryAllocator/CodeBuffer/code-buffer-arm64.h"
-
-#include "xnucxx/LiteMutableArray.h"
-#include "xnucxx/LiteIterator.h"
-
-#include "dobby_internal.h"
-
-static inline int32_t Low16Bits(int32_t value) {
-  return static_cast<int32_t>(value & 0xffff);
-}
-
-static inline int32_t High16Bits(int32_t value) {
-  return static_cast<int32_t>(value >> 16);
-}
-
-static inline int32_t Low32Bits(int64_t value) {
-  return static_cast<int32_t>(value);
-}
-
-static inline int32_t High32Bits(int64_t value) {
-  return static_cast<int32_t>(value >> 32);
-}
-
-namespace zz {
-namespace arm64 {
-
-constexpr Register TMP_REG_0 = X(ARM64_TMP_REG_NDX_0);
-
-#define Rd(rd) (rd.code() << kRdShift)
-#define Rt(rt) (rt.code() << kRtShift)
-#define Rt2(rt) (rt.code() << kRt2Shift)
-#define Rn(rn) (rn.code() << kRnShift)
-#define Rm(rm) (rm.code() << kRmShift)
-
-// ================================================================
-// PseudoLabel
-
-class PseudoLabel : public Label {
-public:
-  enum PseudoLabelType { kLdrLiteral };
-
-  typedef struct _PseudoLabelInstruction {
-    int position_;
-    PseudoLabelType type_;
-  } PseudoLabelInstruction;
-
-public:
-  PseudoLabel(void) : instructions_(8) {
-  }
-  ~PseudoLabel(void) {
-    for (size_t i = 0; i < instructions_.getCount(); i++) {
-      PseudoLabelInstruction *item = (PseudoLabelInstruction *)instructions_.getObject(i);
-      delete item;
-    }
-
-    instructions_.release();
-  }
-
-  bool has_confused_instructions() {
-    return instructions_.getCount() > 0;
-  }
-
-  void link_confused_instructions(CodeBuffer *buffer = nullptr) {
-    if (!buffer)
-      UNREACHABLE();
-    CodeBuffer *_buffer = buffer;
-
-    for (size_t i = 0; i < instructions_.getCount(); i++) {
-      PseudoLabelInstruction *instruction = (PseudoLabelInstruction *)instructions_.getObject(i);
-
-      int32_t offset = pos() - instruction->position_;
-      const int32_t inst32 = _buffer->LoadInst(instruction->position_);
-      int32_t encoded = 0;
-
-      switch (instruction->type_) {
-      case kLdrLiteral: {
-        encoded = inst32 & 0xFF00001F;
-        encoded = encoded | LeftShift((offset >> 2), 19, 5);
-      } break;
-      default:
-        UNREACHABLE();
-        break;
-      }
-      _buffer->FixBindLabel(instruction->position_, encoded);
-    }
-  };
-
-  void link_to(int pos, PseudoLabelType type) {
-    PseudoLabelInstruction *instruction = new PseudoLabelInstruction;
-    instruction->position_ = pos;
-    instruction->type_ = type;
-    instructions_.pushObject((LiteObject *)instruction);
-  }
-
-private:
-#if 0
-  // From a design perspective, these fix-function write as callback, maybe beeter.
-  void FixLdr(PseudoLabelInstruction *instruction){
-      // dummy
-  };
-#endif
-
-private:
-  LiteMutableArray instructions_;
-};
-
-class RelocLabelEntry : public PseudoLabel {
-public:
-  explicit RelocLabelEntry(uint64_t data) : data_size_(0) {
-    data_ = data;
-  }
-
-  uint64_t data() {
-    return data_;
-  }
-
-private:
-  uint64_t data_;
-
-  int data_size_;
-};
-
-// ================================================================
-// Operand
-
-class Operand {
-public:
-  inline explicit Operand(int64_t imm)
-      : immediate_(imm), reg_(InvalidRegister), shift_(NO_SHIFT), extend_(NO_EXTEND), shift_extent_imm_(0) {
-  }
-  inline Operand(Register reg, Shift shift = LSL, int32_t shift_imm = 0)
-      : immediate_(0), reg_(reg), shift_(shift), extend_(NO_EXTEND), shift_extent_imm_(shift_imm) {
-  }
-  inline Operand(Register reg, Extend extend, int32_t shift_imm = 0)
-      : immediate_(0), reg_(reg), shift_(NO_SHIFT), extend_(extend), shift_extent_imm_(shift_imm) {
-  }
-
-  // =====
-
-  bool IsImmediate() const {
-    return reg_.Is(InvalidRegister);
-  }
-  bool IsShiftedRegister() const {
-    return /* reg_.IsValid() && */ (shift_ != NO_SHIFT);
-  }
-  bool IsExtendedRegister() const {
-    return /* reg_.IsValid() && */ (extend_ != NO_EXTEND);
-  }
-
-  // =====
-
-  Register reg() const {
-    DCHECK((IsShiftedRegister() || IsExtendedRegister()));
-    return reg_;
-  }
-  int64_t Immediate() const {
-    return immediate_;
-  }
-  Shift shift() const {
-    DCHECK(IsShiftedRegister());
-    return shift_;
-  }
-  Extend extend() const {
-    DCHECK(IsExtendedRegister());
-    return extend_;
-  }
-  int32_t shift_extend_imm() const {
-    return shift_extent_imm_;
-  }
-
-private:
-  int64_t immediate_;
-
-  Register reg_;
-
-  Shift shift_;
-  Extend extend_;
-  int32_t shift_extent_imm_;
-};
-
-// ================================================================
-// MemOperand
-
-class MemOperand {
-public:
-  inline explicit MemOperand(Register base, int64_t offset = 0, AddrMode addrmode = Offset)
-      : base_(base), regoffset_(InvalidRegister), offset_(offset), addrmode_(addrmode), shift_(NO_SHIFT),
-        extend_(NO_EXTEND), shift_extend_imm_(0) {
-  }
-
-  inline explicit MemOperand(Register base, Register regoffset, Extend extend, unsigned extend_imm)
-      : base_(base), regoffset_(regoffset), offset_(0), addrmode_(Offset), shift_(NO_SHIFT), extend_(extend),
-        shift_extend_imm_(extend_imm) {
-  }
-
-  inline explicit MemOperand(Register base, Register regoffset, Shift shift = LSL, unsigned shift_imm = 0)
-      : base_(base), regoffset_(regoffset), offset_(0), addrmode_(Offset), shift_(shift), extend_(NO_EXTEND),
-        shift_extend_imm_(shift_imm) {
-  }
-
-  inline explicit MemOperand(Register base, const Operand &offset, AddrMode addrmode = Offset)
-      : base_(base), regoffset_(InvalidRegister), addrmode_(addrmode) {
-    if (offset.IsShiftedRegister()) {
-      regoffset_ = offset.reg();
-      shift_ = offset.shift();
-      shift_extend_imm_ = offset.shift_extend_imm();
-
-      extend_ = NO_EXTEND;
-      offset_ = 0;
-    } else if (offset.IsExtendedRegister()) {
-      regoffset_ = offset.reg();
-      extend_ = offset.extend();
-      shift_extend_imm_ = offset.shift_extend_imm();
-
-      shift_ = NO_SHIFT;
-      offset_ = 0;
-    }
-  }
-
-  const Register &base() const {
-    return base_;
-  }
-  const Register &regoffset() const {
-    return regoffset_;
-  }
-  int64_t offset() const {
-    return offset_;
-  }
-  AddrMode addrmode() const {
-    return addrmode_;
-  }
-  Shift shift() const {
-    return shift_;
-  }
-  Extend extend() const {
-    return extend_;
-  }
-  unsigned shift_extend_imm() const {
-    return shift_extend_imm_;
-  }
-
-  bool IsImmediateOffset() const {
-    return (addrmode_ == Offset);
-  }
-  bool IsRegisterOffset() const {
-    return (addrmode_ == Offset);
-  }
-  bool IsPreIndex() const {
-    return addrmode_ == PreIndex;
-  }
-  bool IsPostIndex() const {
-    return addrmode_ == PostIndex;
-  }
-
-private:
-  Register base_;
-  Register regoffset_;
-
-  int64_t offset_;
-
-  Shift shift_;
-  Extend extend_;
-  uint32_t shift_extend_imm_;
-
-  AddrMode addrmode_;
-};
-
-// ================================================================
-// OpEncode
-
-class OpEncode {
-public:
-  static int32_t sf(const Register &reg, int32_t op) {
-    return (op | sf(reg));
-  }
-
-  // register operation size, 32 bits or 64 bits
-  static int32_t sf(const Register &reg) {
-    if (reg.Is64Bits())
-      return LeftShift(1, 1, 31);
-    return 0;
-  }
-
-  static int32_t V(const Register &reg, int32_t op) {
-    return (op | V(reg));
-  }
-
-  // register type, SIMD_FD register or general register
-  static int32_t V(const Register &reg) {
-    if (reg.IsVRegister())
-      return LeftShift(1, 1, 26);
-    return 0;
-  }
-
-  // load or store
-  static int32_t L(bool load_or_store) {
-    if (load_or_store) {
-      return LeftShift(1, 1, 22);
-    }
-    return 0;
-  }
-
-  // shift type
-  static int32_t shift(Shift shift) {
-    return LeftShift(shift, 2, 22);
-  }
-
-  // LogicalImmeidate
-  static int32_t EncodeLogicalImmediate(const Register &rd, const Register &rn, const Operand &operand) {
-    int64_t imm = operand.Immediate();
-    int32_t N, imms, immr;
-    immr = bits(imm, 0, 5);
-    imms = bits(imm, 6, 11);
-    N = bit(imm, 12);
-
-    return (sf(rd) | LeftShift(immr, 6, 16) | LeftShift(imms, 6, 10) | Rd(rd) | Rn(rn));
-  }
-
-  // LogicalShift
-  static int32_t EncodeLogicalShift(const Register &rd, const Register &rn, const Operand &operand) {
-    return (sf(rd) | shift(operand.shift()) | Rm(operand.reg()) | LeftShift(operand.shift_extend_imm(), 6, 10) |
-            Rn(rn) | Rd(rd));
-  }
-
-  // LoadStore
-  static int32_t LoadStorePair(LoadStorePairOp op, CPURegister rt, CPURegister rt2, const MemOperand &addr) {
-    int32_t scale = 2;
-    int32_t opc = 0;
-    int imm7;
-    opc = bits(op, 30, 31);
-    if (rt.IsRegister()) {
-      scale += bit(opc, 1);
-    } else if (rt.IsVRegister()) {
-      scale += opc;
-    }
-
-    imm7 = (int)(addr.offset() >> scale);
-    return LeftShift(imm7, 7, 15);
-  }
-
-  // scale
-  static int32_t scale(int32_t op) {
-    int scale = 0;
-    if ((op & LoadStoreUnsignedOffsetFixed) == LoadStoreUnsignedOffsetFixed) {
-      scale = bits(op, 30, 31);
-    }
-    return scale;
-  }
-};
-
-// ================================================================
-// Assembler
-
-class Assembler : public AssemblerBase {
-public:
-  Assembler(void *address) : AssemblerBase(address) {
-    buffer_ = new CodeBuffer(32);
-    DLOG(0, "Initialize assembler code buffer at %p", (CodeBufferBase *)buffer_->getRawBuffer());
-  }
-  ~Assembler() {
-    if (buffer_)
-      delete buffer_;
-    buffer_ = NULL;
-  }
-
-public:
-  void SetRealizedAddress(void *address) {
-    DCHECK_EQ(0, reinterpret_cast<uint64_t>(address) % 4);
-    AssemblerBase::SetRealizedAddress(address);
-  }
-
-  void Emit(int32_t value);
-
-  void EmitInt64(int64_t value);
-
-  void bind(Label *label);
-
-  void nop() {
-    Emit(0xD503201F);
-  }
-
-  void brk(int code) {
-    Emit(BRK | LeftShift(code, 16, 5));
-  }
-
-  void ret() {
-    Emit(0xD65F03C0);
-  }
-
-  void adrp(const Register &rd, int64_t imm) {
-    DCHECK(rd.Is64Bits());
-    DCHECK((abs(imm) >> 12) < (1 << 21));
-
-    int64_t immlo = LeftShift(bits(imm >> 12, 0, 1), 2, 29);
-    int64_t immhi = LeftShift(bits(imm >> 12, 2, 20), 19, 5);
-    Emit(ADRP | Rd(rd) | immlo | immhi);
-  }
-
-  void add(const Register &rd, const Register &rn, int64_t imm) {
-    if (rd.Is64Bits() && rn.Is64Bits())
-      AddSubImmediate(rd, rn, Operand(imm), OPT_X(ADD, imm));
-    else
-      AddSubImmediate(rd, rn, Operand(imm), OPT_W(ADD, imm));
-  }
-
-  void adds(const Register &rd, const Register &rn, int64_t imm) {
-    UNREACHABLE();
-  }
-  void sub(const Register &rd, const Register &rn, int64_t imm) {
-    if (rd.Is64Bits() && rn.Is64Bits())
-      AddSubImmediate(rd, rn, Operand(imm), OPT_X(SUB, imm));
-    else
-      AddSubImmediate(rd, rn, Operand(imm), OPT_W(SUB, imm));
-  }
-  void subs(const Register &rd, const Register &rn, int64_t imm) {
-    UNREACHABLE();
-  }
-
-  void b(int64_t imm) {
-    int32_t imm26 = bits(imm >> 2, 0, 25);
-
-    Emit(B | imm26);
-  }
-
-  void b(Label *label) {
-    int offset = LinkAndGetByteOffsetTo(label);
-    b(offset);
-  }
-
-  void br(Register rn) {
-    Emit(BR | Rn(rn));
-  }
-
-  void blr(Register rn) {
-    Emit(BLR | Rn(rn));
-  }
-
-  void ldr(Register rt, int64_t imm) {
-    LoadRegLiteralOp op;
-    switch (rt.type()) {
-    case CPURegister::kRegister_32:
-      op = OPT_W(LDR, literal);
-      break;
-    case CPURegister::kRegister_X:
-      op = OPT_X(LDR, literal);
-      break;
-    case CPURegister::kSIMD_FP_Register_S:
-      op = OPT_S(LDR, literal);
-      break;
-    case CPURegister::kSIMD_FP_Register_D:
-      op = OPT_D(LDR, literal);
-      break;
-    case CPURegister::kSIMD_FP_Register_Q:
-      op = OPT_Q(LDR, literal);
-      break;
-    default:
-      UNREACHABLE();
-      break;
-    }
-    EmitLoadRegLiteral(op, rt, imm);
-  }
-
-  void ldr(const CPURegister &rt, const MemOperand &src) {
-    LoadStore(OP_X(LDR), rt, src);
-  }
-
-  void str(const CPURegister &rt, const MemOperand &src) {
-    LoadStore(OP_X(STR), rt, src);
-  }
-
-  void ldp(const Register &rt, const Register &rt2, const MemOperand &src) {
-    if (rt.type() == Register::kSIMD_FP_Register_128) {
-      LoadStorePair(OP_Q(LDP), rt, rt2, src);
-    } else if (rt.type() == Register::kRegister_X) {
-      LoadStorePair(OP_X(LDP), rt, rt2, src);
-    } else {
-      UNREACHABLE();
-    }
-  }
-
-  void stp(const Register &rt, const Register &rt2, const MemOperand &dst) {
-    if (rt.type() == Register::kSIMD_FP_Register_128) {
-      LoadStorePair(OP_Q(STP), rt, rt2, dst);
-    } else if (rt.type() == Register::kRegister_X) {
-      LoadStorePair(OP_X(STP), rt, rt2, dst);
-    } else {
-      UNREACHABLE();
-    }
-  }
-
-  void mov(const Register &rd, const Register &rn) {
-    if ((rd.Is(SP)) || (rn.Is(SP))) {
-      add(rd, rn, 0);
-    } else {
-      if (rd.Is64Bits())
-        orr(rd, xzr, Operand(rn));
-      else
-        orr(rd, wzr, Operand(rn));
-    }
-  }
-  void movk(const Register &rd, uint64_t imm, int shift = -1) {
-    // Move and keep.
-    MoveWide(rd, imm, shift, MOVK);
-  }
-  void movn(const Register &rd, uint64_t imm, int shift = -1) {
-    // Move with non-zero.
-    MoveWide(rd, imm, shift, MOVN);
-  }
-  void movz(const Register &rd, uint64_t imm, int shift = -1) {
-    // Move with zero.
-    MoveWide(rd, imm, shift, MOVZ);
-  }
-
-  void orr(const Register &rd, const Register &rn, const Operand &operand) {
-    Logical(rd, rn, operand, ORR);
-  }
-
-private:
-  // label helpers.
-  static constexpr int kStartOfLabelLinkChain = 0;
-  int LinkAndGetByteOffsetTo(Label *label);
-
-  // load helpers.
-  void EmitLoadRegLiteral(LoadRegLiteralOp op, CPURegister rt, int64_t imm) {
-    const int32_t encoding = op | LeftShift(imm, 26, 5) | Rt(rt);
-    Emit(encoding);
-  }
-
-  void LoadStore(LoadStoreOp op, CPURegister rt, const MemOperand &addr) {
-    int64_t imm12 = addr.offset();
-    if (addr.IsImmediateOffset()) {
-      // TODO: check Scaled ???
-      imm12 = addr.offset() >> OpEncode::scale(LoadStoreUnsignedOffsetFixed | op);
-      Emit(LoadStoreUnsignedOffsetFixed | op | LeftShift(imm12, 12, 10) | Rn(addr.base()) | Rt(rt));
-    } else if (addr.IsRegisterOffset()) {
-      UNREACHABLE();
-    } else {
-      // pre-index & post-index
-      UNREACHABLE();
-    }
-  }
-
-  void LoadStorePair(LoadStorePairOp op, CPURegister rt, CPURegister rt2, const MemOperand &addr) {
-    int32_t combine_fields_op = OpEncode::LoadStorePair(op, rt, rt2, addr) | Rt2(rt2) | Rn(addr.base()) | Rt(rt);
-    int32_t addrmodeop;
-
-    if (addr.IsImmediateOffset()) {
-      addrmodeop = LoadStorePairOffsetFixed;
-    } else {
-      if (addr.IsPreIndex()) {
-        addrmodeop = LoadStorePairPreIndexFixed;
-      } else {
-        addrmodeop = LoadStorePairPostIndexFixed;
-      }
-    }
-    Emit(op | addrmodeop | combine_fields_op);
-  }
-
-  void MoveWide(Register rd, uint64_t imm, int shift, MoveWideImmediateOp op) {
-    if (shift > 0)
-      shift /= 16;
-    else
-      shift = 0;
-
-    int32_t imm16 = LeftShift(imm, 16, 5);
-    Emit(MoveWideImmediateFixed | op | OpEncode::sf(rd) | LeftShift(shift, 2, 21) | imm16 | Rd(rd));
-  }
-
-  void AddSubImmediate(const Register &rd, const Register &rn, const Operand &operand, AddSubImmediateOp op) {
-    if (operand.IsImmediate()) {
-      int64_t immediate = operand.Immediate();
-      int32_t imm12 = LeftShift(immediate, 12, 10);
-      Emit(op | Rd(rd) | Rn(rn) | imm12);
-    } else {
-      UNREACHABLE();
-    }
-  }
-
-  void Logical(const Register &rd, const Register &rn, const Operand &operand, LogicalOp op) {
-    if (operand.IsImmediate()) {
-      LogicalImmediate(rd, rn, operand, op);
-    } else {
-      LogicalShift(rd, rn, operand, op);
-    }
-  }
-  void LogicalImmediate(const Register &rd, const Register &rn, const Operand &operand, LogicalOp op) {
-    int32_t combine_fields_op = OpEncode::EncodeLogicalImmediate(rd, rn, operand);
-    Emit(op | combine_fields_op);
-  }
-  void LogicalShift(const Register &rd, const Register &rn, const Operand &operand, LogicalOp op) {
-    int32_t combine_fields_op = OpEncode::EncodeLogicalShift(rd, rn, operand);
-    Emit(op | LogicalShiftedFixed | combine_fields_op);
-  }
-};
-
-// ================================================================
-// TurboAssembler
-
-class TurboAssembler : public Assembler {
-public:
-  TurboAssembler(void *address) : Assembler(address) {
-    data_labels_ = NULL;
-  }
-
-  ~TurboAssembler() {
-    if (data_labels_) {
-      for (size_t i = 0; i < data_labels_->getCount(); i++) {
-        RelocLabelEntry *label = (RelocLabelEntry *)data_labels_->getObject(i);
-        delete label;
-      }
-
-      delete data_labels_;
-    }
-  }
-
-  void CallFunction(ExternalReference function) {
-    Mov(TMP_REG_0, (uint64_t)function.address());
-    blr(TMP_REG_0);
-  }
-
-  void Ldr(Register rt, PseudoLabel *label) {
-    if (label->is_bound()) {
-      int offset = label->pos() - buffer_->getSize();
-      ldr(rt, offset);
-    } else {
-      // record this ldr, and fix later.
-      label->link_to(buffer_->getSize(), PseudoLabel::kLdrLiteral);
-      ldr(rt, 0);
-    }
-  }
-
-  void Mov(Register rd, uint64_t imm) {
-    const uint32_t w0 = Low32Bits(imm);
-    const uint32_t w1 = High32Bits(imm);
-    const uint16_t h0 = Low16Bits(w0);
-    const uint16_t h1 = High16Bits(w0);
-    const uint16_t h2 = Low16Bits(w1);
-    const uint16_t h3 = High16Bits(w1);
-    movz(rd, h0, 0);
-    movk(rd, h1, 16);
-    movk(rd, h2, 32);
-    movk(rd, h3, 48);
-  }
-
-  void AdrpAdd(Register rd, uint64_t from, uint64_t to) {
-    uint64_t from_PAGE = ALIGN(from, 0x1000);
-    uint64_t to_PAGE = ALIGN(to, 0x1000);
-    uint64_t to_PAGEOFF = (uint64_t)to % 0x1000;
-
-    adrp(rd, to_PAGE - from_PAGE);
-    add(rd, rd, to_PAGEOFF);
-  }
-
-  // ================================================================
-  // PseudoLabel
-
-  void PseudoBind(PseudoLabel *label) {
-    const addr_t bound_pc = buffer_->getSize();
-    label->bind_to(bound_pc);
-    // If some instructions have been wrote, before the label bound, we need link these `confused` instructions
-    if (label->has_confused_instructions()) {
-      label->link_confused_instructions(reinterpret_cast<CodeBuffer *>(this->GetCodeBuffer()));
-    }
-  }
-
-  void RelocBind() {
-    if (data_labels_ == NULL)
-      return;
-    for (size_t i = 0; i < data_labels_->getCount(); i++) {
-      RelocLabelEntry *label = (RelocLabelEntry *)data_labels_->getObject(i);
-      PseudoBind(label);
-      EmitInt64(label->data());
-    }
-  }
-
-  void AppendRelocLabelEntry(RelocLabelEntry *label) {
-    if (data_labels_ == NULL) {
-      data_labels_ = new LiteMutableArray(8);
-    }
-    data_labels_->pushObject((LiteObject *)label);
-  }
-
-private:
-  LiteMutableArray *data_labels_;
-};
-
-} // namespace arm64
-} // namespace zz
-
-#endif
diff --git a/loader/dobby/source/core/modules/assembler/assembler-ia32.cc b/loader/dobby/source/core/modules/assembler/assembler-ia32.cc
deleted file mode 100644
index 6fb2cb08..00000000
--- a/loader/dobby/source/core/modules/assembler/assembler-ia32.cc
+++ /dev/null
@@ -1,17 +0,0 @@
-#include "platform_macro.h"
-#if TARGET_ARCH_IA32
-
-#include "core/modules/assembler/assembler-ia32.h"
-
-using namespace zz::x86;
-
-void Assembler::jmp(Immediate imm) {
-  buffer_->Emit8(0xE9);
-  buffer_->Emit32((int)imm.value());
-}
-
-addr32_t TurboAssembler::CurrentIP() {
-  return pc_offset() + (addr_t)realized_address_;
-}
-
-#endif
\ No newline at end of file
diff --git a/loader/dobby/source/core/modules/assembler/assembler-ia32.h b/loader/dobby/source/core/modules/assembler/assembler-ia32.h
deleted file mode 100644
index 44f75e2b..00000000
--- a/loader/dobby/source/core/modules/assembler/assembler-ia32.h
+++ /dev/null
@@ -1,593 +0,0 @@
-#ifndef CORE_ASSEMBLER_X86_H
-#define CORE_ASSEMBLER_X86_H
-
-#include "common_header.h"
-
-#include "core/arch/x86/registers-x86.h"
-#include "core/modules/assembler/assembler.h"
-
-#include "MemoryAllocator/CodeBuffer/code-buffer-x86.h"
-
-#include "xnucxx/LiteMutableArray.h"
-#include "xnucxx/LiteIterator.h"
-
-#define IsInt8(imm) (-128 <= imm && imm <= 127)
-
-namespace zz {
-namespace x86 {
-
-constexpr Register VOLATILE_REGISTER = eax;
-
-// ================================================================
-// PseudoLabel
-
-class PseudoLabel : public Label {
-public:
-  enum PseudoLabelType { kDisp32_off_7 };
-
-  typedef struct _PseudoLabelInstruction {
-    int position_;
-    PseudoLabelType type_;
-  } PseudoLabelInstruction;
-
-public:
-  PseudoLabel(void) : instructions_(8) {
-  }
-  ~PseudoLabel(void) {
-    for (size_t i = 0; i < instructions_.getCount(); i++) {
-      PseudoLabelInstruction *item = (PseudoLabelInstruction *)instructions_.getObject(i);
-      delete item;
-    }
-
-    instructions_.release();
-  }
-
-  bool has_confused_instructions() {
-    return instructions_.getCount() > 0;
-  }
-
-  void link_confused_instructions(CodeBuffer *buffer = nullptr) {
-    if (!buffer)
-      UNREACHABLE();
-    CodeBuffer *_buffer = buffer;
-
-    for (size_t i = 0; i < instructions_.getCount(); i++) {
-      PseudoLabelInstruction *instruction = (PseudoLabelInstruction *)instructions_.getObject(i);
-
-      int32_t offset = pos() - instruction->position_;
-
-      switch (instruction->type_) {
-      case kDisp32_off_7: {
-        // why 7 ?
-        // use `call` and `pop` get the runtime ip register
-        // but the ip register not the real call next insn
-        // it need add two insn length == 7
-        int disp32_fix_pos = instruction->position_ - sizeof(int32_t);
-        _buffer->FixBindLabel(disp32_fix_pos, offset + 7);
-      } break;
-      default:
-        UNREACHABLE();
-        break;
-      }
-    }
-  };
-
-  void link_to(int pos, PseudoLabelType type) {
-    PseudoLabelInstruction *instruction = new PseudoLabelInstruction;
-    instruction->position_ = pos;
-    instruction->type_ = type;
-    instructions_.pushObject((LiteObject *)instruction);
-  }
-
-private:
-  LiteMutableArray instructions_;
-};
-
-class RelocLabelEntry : public PseudoLabel {
-public:
-  explicit RelocLabelEntry(uint32_t data) : data_size_(0) {
-    data_ = data;
-  }
-
-  uint32_t data() {
-    return data_;
-  }
-
-private:
-  uint32_t data_;
-
-  int data_size_;
-};
-
-#define ModRM_Mod(byte) ((byte & 0b11000000) >> 6)
-#define ModRM_RegOpcode(byte) ((byte & 0b00111000) >> 3)
-#define ModRM_RM(byte) (byte & 0b00000111)
-
-typedef union _ModRM {
-  byte_t ModRM;
-  struct {
-    byte_t RM : 3;
-    byte_t RegOpcode : 3;
-    byte_t Mod : 2;
-  };
-} ModRM;
-
-// ================================================================
-// Immediate
-
-class Immediate {
-public:
-  explicit Immediate(int32_t imm) : value_(imm), value_size_(32) {
-    if ((int32_t)(int8_t)imm == imm) {
-      value_size_ = 8;
-    } else if ((int32_t)(int16_t)imm == imm) {
-      value_size_ = 16;
-    } else {
-      value_size_ = 32;
-    }
-  }
-
-  explicit Immediate(int32_t imm, int size) : value_(imm), value_size_(size) {
-  }
-
-  int32_t value() const {
-    return value_;
-  }
-
-  int size() const {
-    return value_size_;
-  }
-
-private:
-  const int32_t value_;
-
-  int value_size_;
-};
-
-// ================================================================
-// Operand
-
-class Operand {
-public:
-  // [base]
-  Operand(Register base);
-
-  // [base + disp/r]
-  Operand(Register base, int32_t disp);
-
-  // [base + index*scale + disp/r]
-  Operand(Register base, Register index, ScaleFactor scale, int32_t disp);
-
-  // [index*scale + disp/r]
-  Operand(Register index, ScaleFactor scale, int32_t disp);
-
-public: // Getter and Setter
-  uint8_t modrm() {
-    return (encoding_at(0));
-  }
-
-  uint8_t mod() const {
-    return (encoding_at(0) >> 6) & 3;
-  }
-
-  Register rm() const {
-    return Register::from_code(encoding_at(0) & 7);
-  }
-
-  ScaleFactor scale() const {
-    return static_cast<ScaleFactor>((encoding_at(1) >> 6) & 3);
-  }
-
-  Register index() const {
-    return Register::from_code((encoding_at(1) >> 3) & 7);
-  }
-
-  Register base() const {
-    return Register::from_code(encoding_at(1) & 7);
-  }
-
-  int8_t disp8() const {
-    ASSERT(length_ >= 2);
-    return static_cast<int8_t>(encoding_[length_ - 1]);
-  }
-
-  int32_t disp32() const {
-    ASSERT(length_ >= 5);
-    return static_cast<int32_t>(encoding_[length_ - 4]);
-  }
-
-protected:
-  Operand() : length_(0) {
-  }
-
-  void SetModRM(int mod, Register rm) {
-    ASSERT((mod & ~3) == 0);
-    encoding_[0] = (mod << 6) | rm.code();
-    length_ = 1;
-  }
-
-  void SetSIB(ScaleFactor scale, Register index, Register base) {
-    ASSERT(length_ == 1);
-    ASSERT((scale & ~3) == 0);
-    encoding_[1] = (scale << 6) | (index.code() << 3) | base.code();
-    length_ = 2;
-  }
-
-  void SetDisp8(int8_t disp) {
-    ASSERT(length_ == 1 || length_ == 2);
-    encoding_[length_++] = static_cast<uint8_t>(disp);
-  }
-
-  void SetDisp32(int32_t disp) {
-    ASSERT(length_ == 1 || length_ == 2);
-    *(int32_t *)&encoding_[length_] = disp;
-    length_ += sizeof(disp);
-  }
-
-private:
-  // explicit Operand(Register reg) : rex_(REX_NONE) { SetModRM(3, reg); }
-
-  // Get the operand encoding byte at the given index.
-  uint8_t encoding_at(intptr_t index) const {
-    ASSERT(index >= 0 && index < length_);
-    return encoding_[index];
-  }
-
-public:
-  uint8_t length_;
-  uint8_t encoding_[6];
-};
-
-// ================================================================
-// Address
-
-class Address : public Operand {
-public:
-  Address(Register base, int32_t disp) {
-    int base_ = base.code();
-    int ebp_ = ebp.code();
-    int esp_ = esp.code();
-    if ((disp == 0) && (base_ != ebp_)) {
-      SetModRM(0, base);
-      if (base_ == esp_)
-        SetSIB(TIMES_1, esp, base);
-    } else if (disp >= -128 && disp <= 127) {
-      SetModRM(1, base);
-      if (base_ == esp_)
-        SetSIB(TIMES_1, esp, base);
-      SetDisp8(disp);
-    } else {
-      SetModRM(2, base);
-      if (base_ == esp_)
-        SetSIB(TIMES_1, esp, base);
-      SetDisp32(disp);
-    }
-  }
-
-  // This addressing mode does not exist.
-  Address(Register base, Register r);
-
-  Address(Register index, ScaleFactor scale, int32_t disp) {
-    ASSERT(index.code() != rsp.code()); // Illegal addressing mode.
-    SetModRM(0, esp);
-    SetSIB(scale, index, ebp);
-    SetDisp32(disp);
-  }
-
-  // This addressing mode does not exist.
-  Address(Register index, ScaleFactor scale, Register r);
-
-  Address(Register base, Register index, ScaleFactor scale, int32_t disp) {
-    ASSERT(index.code() != rsp.code()); // Illegal addressing mode.
-    int rbp_ = ebp.code();
-    if ((disp == 0) && ((base.code() & 7) != rbp_)) {
-      SetModRM(0, esp);
-      SetSIB(scale, index, base);
-    } else if (disp >= -128 && disp <= 127) {
-      SetModRM(1, esp);
-      SetSIB(scale, index, base);
-      SetDisp8(disp);
-    } else {
-      SetModRM(2, esp);
-      SetSIB(scale, index, base);
-      SetDisp32(disp);
-    }
-  }
-
-  // This addressing mode does not exist.
-  Address(Register base, Register index, ScaleFactor scale, Register r);
-
-private:
-  Address(Register base, int32_t disp, bool fixed) {
-    ASSERT(fixed);
-
-    SetModRM(2, base);
-    if (base.code() == esp.code()) {
-      SetSIB(TIMES_1, esp, base);
-    }
-    SetDisp32(disp);
-  }
-};
-
-// ================================================================
-// Assembler
-
-class Assembler : public AssemblerBase {
-public:
-  Assembler(void *address) : AssemblerBase(address) {
-    buffer_ = new CodeBuffer(32);
-  }
-  ~Assembler() {
-    if (buffer_)
-      delete buffer_;
-    buffer_ = NULL;
-  }
-
-public:
-  void Emit1(byte_t val) {
-    buffer_->Emit8(val);
-  }
-
-  void Emit(int32_t value) {
-    buffer_->Emit32(value);
-  }
-
-  // ================================================================
-  // Immediate
-
-  void EmitImmediate(Immediate imm, int imm_size) {
-    if (imm_size == 8) {
-      buffer_->Emit8((uint8_t)imm.value());
-    } else if (imm_size == 32) {
-      buffer_->Emit32((uint32_t)imm.value());
-    } else {
-      UNREACHABLE();
-    }
-  }
-
-  // ================================================================
-  // Operand Encoding
-
-  // ATTENTION:
-  // ModR/M == 8 registers and 24 addressing mode
-
-  void Emit_OpEn_Register_MemOperand(Register dst, Address &operand) {
-    EmitModRM_Update_Register(operand.modrm(), dst);
-    buffer_->EmitBuffer(&operand.encoding_[1], operand.length_ - 1);
-  }
-
-  void Emit_OpEn_Register_RegOperand(Register dst, Register src) {
-    EmitModRM_Register_Register(dst, src);
-  }
-
-  void Emit_OpEn_MemOperand_Immediate(uint8_t extra_opcode, Address &operand, Immediate imm) {
-    EmitModRM_Update_ExtraOpcode(operand.modrm(), extra_opcode);
-    buffer_->EmitBuffer(&operand.encoding_[1], operand.length_ - 1);
-    EmitImmediate(imm, imm.size());
-  }
-
-  void Emit_OpEn_RegOperand_Immediate(uint8_t extra_opcode, Register reg, Immediate imm) {
-    EmitModRM_ExtraOpcode_Register(extra_opcode, reg);
-    EmitImmediate(imm, imm.size());
-  }
-
-  void Emit_OpEn_MemOperand(uint8_t extra_opcode, Address &operand) {
-    EmitModRM_Update_ExtraOpcode(operand.modrm(), extra_opcode);
-    buffer_->EmitBuffer(&operand.encoding_[1], operand.length_ - 1);
-  }
-
-  void Emit_OpEn_RegOperand(uint8_t extra_opcode, Register reg) {
-    EmitModRM_ExtraOpcode_Register(extra_opcode, reg);
-  }
-
-  // Encoding: OI
-  void Emit_OpEn_OpcodeRegister_Immediate(uint8_t opcode, Register dst, Immediate imm) {
-    EmitOpcode_Register(opcode, dst);
-    EmitImmediate(imm, imm.size());
-  }
-
-  // ================================================================
-  // ModRM
-
-  inline void EmitModRM(uint8_t Mod, uint8_t RegOpcode, uint8_t RM) {
-    uint8_t ModRM = 0;
-    ModRM |= Mod << 6;
-    ModRM |= RegOpcode << 3;
-    ModRM |= RM;
-    Emit1(ModRM);
-  }
-
-  void EmitModRM_ExtraOpcode_Register(uint8_t extra_opcode, Register reg) {
-    EmitModRM(0b11, extra_opcode, reg.code());
-  }
-
-  void EmitModRM_Register_Register(Register reg1, Register reg2) {
-    EmitModRM(0b11, reg1.code(), reg2.code());
-  }
-
-  // update operand's ModRM
-  void EmitModRM_Update_Register(uint8_t modRM, Register reg) {
-    EmitModRM(ModRM_Mod(modRM), reg.code(), ModRM_RM(modRM));
-  }
-
-  // update operand's ModRM
-  void EmitModRM_Update_ExtraOpcode(uint8_t modRM, uint8_t extra_opcode) {
-    EmitModRM(ModRM_Mod(modRM), extra_opcode, ModRM_RM(modRM));
-  }
-
-  // ================================================================
-  // Opcode
-  void EmitOpcode(uint8_t opcode) {
-    Emit1(opcode);
-  }
-
-  void EmitOpcode_Register(uint8_t opcode, Register reg) {
-    EmitOpcode(opcode | reg.code());
-  }
-
-  // ================================================================
-  // Instruction
-
-  void pushfq() {
-    Emit1(0x9C);
-  }
-
-  void jmp(Immediate imm);
-
-  void sub(Register dst, Immediate imm) {
-    DCHECK_EQ(dst.size(), 32);
-
-    EmitOpcode(0x81);
-
-    Emit_OpEn_RegOperand_Immediate(0x5, dst, imm);
-  }
-
-  void add(Register dst, Immediate imm) {
-    DCHECK_EQ(dst.size(), 32);
-
-    EmitOpcode(0x81);
-
-    Emit_OpEn_RegOperand_Immediate(0x0, dst, imm);
-  }
-
-  // MOV RAX, 0x320
-  // 48 c7 c0 20 03 00 00 (MI encoding)
-  // 48 b8 20 03 00 00 00 00 00 00 (OI encoding)
-  void mov(Register dst, const Immediate imm) {
-    Emit_OpEn_OpcodeRegister_Immediate(0xb8, dst, imm);
-  }
-
-  void mov(Address dst, const Immediate imm) {
-    EmitOpcode(0xc7);
-
-    Emit_OpEn_MemOperand_Immediate(0x0, dst, imm);
-  }
-
-  void mov(Register dst, Address src) {
-    EmitOpcode(0x8B);
-
-    Emit_OpEn_Register_MemOperand(dst, src);
-  }
-
-  void mov(Address dst, Register src) {
-    EmitOpcode(0x89);
-
-    Emit_OpEn_Register_MemOperand(src, dst);
-  }
-
-  void mov(Register dst, Register src) {
-    Emit1(0x8B);
-
-    Emit_OpEn_Register_RegOperand(dst, src);
-  }
-
-  void call(Address operand) {
-    EmitOpcode(0xFF);
-
-    Emit_OpEn_MemOperand(0x2, operand);
-  }
-
-  void call(Immediate imm) {
-    EmitOpcode(0xe8);
-
-    EmitImmediate(imm, imm.size());
-  }
-
-  void call(Register reg) {
-    EmitOpcode(0xFF);
-
-    Emit_OpEn_RegOperand(0x2, reg);
-  }
-
-  void pop(Register reg) {
-    EmitOpcode_Register(0x58, reg);
-  }
-
-  void push(Register reg) {
-    EmitOpcode_Register(0x50, reg);
-  }
-
-  void ret() {
-    EmitOpcode(0xc3);
-  }
-  void nop() {
-    EmitOpcode(0x90);
-  }
-};
-
-// ================================================================
-// TurboAssembler
-
-class TurboAssembler : public Assembler {
-public:
-  TurboAssembler(void *address) : Assembler(address) {
-    data_labels_ = NULL;
-  }
-
-  ~TurboAssembler() {
-    if (data_labels_) {
-      for (size_t i = 0; i < data_labels_->getCount(); i++) {
-        RelocLabelEntry *label = (RelocLabelEntry *)data_labels_->getObject(i);
-        delete label;
-      }
-
-      delete data_labels_;
-    }
-  }
-
-  addr32_t CurrentIP();
-
-  void CallFunction(ExternalReference function) {
-    nop();
-    MovRipToRegister(VOLATILE_REGISTER);
-    call(Address(VOLATILE_REGISTER, INT32_MAX));
-    {
-      RelocLabelEntry *addrLabel = new RelocLabelEntry((uint32_t)function.address());
-      addrLabel->link_to(ip_offset(), PseudoLabel::kDisp32_off_7);
-      this->AppendRelocLabelEntry(addrLabel);
-    }
-    nop();
-  }
-
-  void MovRipToRegister(Register dst) {
-    call(Immediate(0, 32));
-    pop(dst);
-  }
-
-  // ================================================================
-  // RelocLabelEntry
-
-  void PseudoBind(PseudoLabel *label) {
-    const addr_t bound_pc = buffer_->getSize();
-    label->bind_to(bound_pc);
-    // If some instructions have been wrote, before the label bound, we need link these `confused` instructions
-    if (label->has_confused_instructions()) {
-      label->link_confused_instructions(reinterpret_cast<CodeBuffer *>(this->GetCodeBuffer()));
-    }
-  }
-
-  void RelocBind() {
-    if (data_labels_ == NULL)
-      return;
-    for (size_t i = 0; i < data_labels_->getCount(); i++) {
-      RelocLabelEntry *label = (RelocLabelEntry *)data_labels_->getObject(i);
-      PseudoBind(label);
-      Emit(label->data());
-    }
-  }
-
-  void AppendRelocLabelEntry(RelocLabelEntry *label) {
-    if (data_labels_ == NULL) {
-      data_labels_ = new LiteMutableArray(8);
-    }
-    data_labels_->pushObject((LiteObject *)label);
-  }
-
-private:
-  LiteMutableArray *data_labels_;
-};
-
-} // namespace x86
-} // namespace zz
-
-#endif
diff --git a/loader/dobby/source/core/modules/assembler/assembler-x64.cc b/loader/dobby/source/core/modules/assembler/assembler-x64.cc
deleted file mode 100644
index dee32526..00000000
--- a/loader/dobby/source/core/modules/assembler/assembler-x64.cc
+++ /dev/null
@@ -1,17 +0,0 @@
-#include "platform_macro.h"
-#if defined(TARGET_ARCH_X64)
-
-#include "core/modules/assembler/assembler-x64.h"
-
-using namespace zz::x64;
-
-void Assembler::jmp(Immediate imm) {
-  buffer_->Emit8(0xE9);
-  buffer_->Emit32((int)imm.value());
-}
-
-uint64_t TurboAssembler::CurrentIP() {
-  return pc_offset() + (addr_t)realized_address_;
-}
-
-#endif
\ No newline at end of file
diff --git a/loader/dobby/source/core/modules/assembler/assembler-x64.h b/loader/dobby/source/core/modules/assembler/assembler-x64.h
deleted file mode 100644
index f13e2b73..00000000
--- a/loader/dobby/source/core/modules/assembler/assembler-x64.h
+++ /dev/null
@@ -1,737 +0,0 @@
-#ifndef CORE_ASSEMBLER_X86_SHARED_H
-#define CORE_ASSEMBLER_X86_SHARED_H
-
-#include "common_header.h"
-
-#include "core/arch/x64/registers-x64.h"
-#include "core/modules/assembler/assembler.h"
-
-#include "MemoryAllocator/CodeBuffer/code-buffer-x64.h"
-
-#include "xnucxx/LiteMutableArray.h"
-#include "xnucxx/LiteIterator.h"
-
-#define IsInt8(imm) (-128 <= imm && imm <= 127)
-
-namespace zz {
-namespace x64 {
-
-constexpr Register VOLATILE_REGISTER = r11;
-
-// ================================================================
-// PseudoLabel
-
-class PseudoLabel : public Label {
-public:
-  enum PseudoLabelType { kDisp32_off_9 };
-
-  typedef struct _PseudoLabelInstruction {
-    int position_;
-    PseudoLabelType type_;
-  } PseudoLabelInstruction;
-
-public:
-  PseudoLabel(void) : instructions_(8) {
-  }
-
-  ~PseudoLabel(void) {
-    for (unsigned i = 0; i < instructions_.getCount(); i++) {
-      PseudoLabelInstruction *item = (PseudoLabelInstruction *)instructions_.getObject(i);
-      delete item;
-    }
-
-    instructions_.release();
-  }
-
-  bool has_confused_instructions() {
-    return instructions_.getCount() > 0;
-  }
-
-  void link_confused_instructions(CodeBuffer *buffer = nullptr) {
-    if (!buffer)
-      UNREACHABLE();
-    CodeBuffer *_buffer = buffer;
-
-    for (unsigned i = 0; i < instructions_.getCount(); i++) {
-      PseudoLabelInstruction *instruction = (PseudoLabelInstruction *)instructions_.getObject(i);
-
-      int32_t offset = pos() - instruction->position_;
-
-      switch (instruction->type_) {
-      case kDisp32_off_9: {
-        // why 9 ?
-        // use `call` and `pop` get the runtime ip register
-        // but the ip register not the real call next insn
-        // it need add two insn length == 9
-        int disp32_fix_pos = instruction->position_ - sizeof(int32_t);
-        _buffer->FixBindLabel(disp32_fix_pos, offset + 9);
-      } break;
-      default:
-        UNREACHABLE();
-        break;
-      }
-    }
-  };
-
-  void link_to(int pos, PseudoLabelType type) {
-    PseudoLabelInstruction *instruction = new PseudoLabelInstruction;
-    instruction->position_ = pos;
-    instruction->type_ = type;
-    instructions_.pushObject((LiteObject *)instruction);
-  }
-
-private:
-  LiteMutableArray instructions_;
-};
-
-class RelocLabelEntry : public PseudoLabel {
-public:
-  explicit RelocLabelEntry(uint64_t data) : data_size_(0) {
-    data_ = data;
-  }
-
-  uint64_t data() {
-    return data_;
-  }
-
-private:
-  uint64_t data_;
-
-  int data_size_;
-};
-
-#define ModRM_Mod(byte) ((byte & 0b11000000) >> 6)
-#define ModRM_RegOpcode(byte) ((byte & 0b00111000) >> 3)
-#define ModRM_RM(byte) (byte & 0b00000111)
-
-typedef union _ModRM {
-  byte_t ModRM;
-  struct {
-    byte_t RM : 3;
-    byte_t RegOpcode : 3;
-    byte_t Mod : 2;
-  };
-} ModRM;
-
-// ================================================================
-// Immediate
-
-class Immediate {
-public:
-  explicit Immediate(int64_t imm) : value_(imm), value_size_(64) {
-    if ((int64_t)(int8_t)imm == imm) {
-      value_size_ = 8;
-    } else if ((int64_t)(int16_t)imm == imm) {
-      value_size_ = 8;
-    } else if ((int64_t)(int32_t)imm == imm) {
-      value_size_ = 32;
-    } else {
-      value_size_ = 64;
-    }
-  }
-
-  explicit Immediate(int64_t imm, int size) : value_(imm), value_size_(size) {
-  }
-
-  int64_t value() const {
-    return value_;
-  }
-
-  int size() const {
-    return value_size_;
-  }
-
-private:
-  const int64_t value_;
-
-  int value_size_;
-};
-
-// ================================================================
-// Operand
-
-class Operand {
-public:
-  // [base]
-  Operand(Register base);
-
-  // [base + disp/r]
-  Operand(Register base, int32_t disp);
-
-  // [base + index*scale + disp/r]
-  Operand(Register base, Register index, ScaleFactor scale, int32_t disp);
-
-  // [index*scale + disp/r]
-  Operand(Register index, ScaleFactor scale, int32_t disp);
-
-public: // Getter and Setter
-  uint8_t rex() const {
-    return rex_;
-  }
-
-  inline uint8_t rex_b() const {
-    return (rex_ & REX_B);
-  }
-
-  inline uint8_t rex_x() const {
-    return (rex_ & REX_X);
-  }
-
-  inline uint8_t rex_r() const {
-    return (rex_ & REX_R);
-  }
-
-  inline uint8_t rex_w() const {
-    return (rex_ & REX_W);
-  }
-
-  uint8_t modrm() {
-    return (encoding_at(0));
-  }
-
-  uint8_t mod() const {
-    return (encoding_at(0) >> 6) & 3;
-  }
-
-  Register rm() const {
-    int rm_rex = rex_b() << 3;
-    return Register::from_code(rm_rex + (encoding_at(0) & 7));
-  }
-
-  ScaleFactor scale() const {
-    return static_cast<ScaleFactor>((encoding_at(1) >> 6) & 3);
-  }
-
-  Register index() const {
-    int index_rex = rex_x() << 2;
-    return Register::from_code(index_rex + ((encoding_at(1) >> 3) & 7));
-  }
-
-  Register base() const {
-    int base_rex = rex_b() << 3;
-    return Register::from_code(base_rex + (encoding_at(1) & 7));
-  }
-
-  int8_t disp8() const {
-    ASSERT(length_ >= 2);
-    return static_cast<int8_t>(encoding_[length_ - 1]);
-  }
-
-  int32_t disp32() const {
-    ASSERT(length_ >= 5);
-    return static_cast<int32_t>(encoding_[length_ - 4]);
-  }
-
-protected:
-  Operand() : length_(0), rex_(REX_NONE) {
-  } // Needed by subclass Address.
-
-  void SetModRM(int mod, Register rm) {
-    ASSERT((mod & ~3) == 0);
-
-    if ((rm.code() > 7) && !((rm.Is(r12)) && (mod != 3))) {
-      rex_ |= REX_B;
-    }
-    encoding_[0] = (mod << 6) | (rm.code() & 7);
-    length_ = 1;
-  }
-
-  void SetSIB(ScaleFactor scale, Register index, Register base) {
-    ASSERT(length_ == 1);
-    ASSERT((scale & ~3) == 0);
-
-    if (base.code() > 7) {
-      ASSERT((rex_ & REX_B) == 0); // Must not have REX.B already set.
-      rex_ |= REX_B;
-    }
-    if (index.code() > 7)
-      rex_ |= REX_X;
-
-    encoding_[1] = (scale << 6) | ((index.code() & 7) << 3) | (base.code() & 7);
-    length_ = 2;
-  }
-
-  void SetDisp8(int8_t disp) {
-    ASSERT(length_ == 1 || length_ == 2);
-
-    encoding_[length_++] = static_cast<uint8_t>(disp);
-  }
-
-  void SetDisp32(int32_t disp) {
-    ASSERT(length_ == 1 || length_ == 2);
-
-    *(int32_t *)&encoding_[length_] = disp;
-    length_ += sizeof(disp);
-  }
-
-private:
-  // explicit Operand(Register reg) : rex_(REX_NONE) { SetModRM(3, reg); }
-
-  // Get the operand encoding byte at the given index.
-  uint8_t encoding_at(intptr_t index) const {
-    ASSERT(index >= 0 && index < length_);
-    return encoding_[index];
-  }
-
-public:
-  uint8_t length_;
-  uint8_t rex_;
-  uint8_t encoding_[6];
-};
-
-// ================================================================
-// Address
-
-class Address : public Operand {
-public:
-  Address(Register base, int32_t disp) {
-    int base_ = base.code();
-    int rbp_ = rbp.code();
-    int rsp_ = rsp.code();
-    if ((disp == 0) && ((base_ & 7) != rbp_)) {
-      SetModRM(0, base);
-      if ((base_ & 7) == rsp_) {
-        SetSIB(TIMES_1, rsp, base);
-      }
-    } else if (IsInt8(disp)) {
-      SetModRM(1, base);
-      if ((base_ & 7) == rsp_) {
-        SetSIB(TIMES_1, rsp, base);
-      }
-      SetDisp8(disp);
-    } else {
-      SetModRM(2, base);
-      if ((base_ & 7) == rsp_) {
-        SetSIB(TIMES_1, rsp, base);
-      }
-      SetDisp32(disp);
-    }
-  }
-
-  // This addressing mode does not exist.
-  Address(Register base, Register r);
-
-  Address(Register index, ScaleFactor scale, int32_t disp) {
-    ASSERT(index.code() != rsp.code()); // Illegal addressing mode.
-    SetModRM(0, rsp);
-    SetSIB(scale, index, rbp);
-    SetDisp32(disp);
-  }
-
-  // This addressing mode does not exist.
-  Address(Register index, ScaleFactor scale, Register r);
-
-  Address(Register base, Register index, ScaleFactor scale, int32_t disp) {
-    ASSERT(index.code() != rsp.code()); // Illegal addressing mode.
-    int rbp_ = rbp.code();
-    if ((disp == 0) && ((base.code() & 7) != rbp_)) {
-      SetModRM(0, rsp);
-      SetSIB(scale, index, base);
-    } else if (IsInt8(disp)) {
-      SetModRM(1, rsp);
-      SetSIB(scale, index, base);
-      SetDisp8(disp);
-    } else {
-      SetModRM(2, rsp);
-      SetSIB(scale, index, base);
-      SetDisp32(disp);
-    }
-  }
-
-  // This addressing mode does not exist.
-  Address(Register base, Register index, ScaleFactor scale, Register r);
-
-private:
-  Address(Register base, int32_t disp, bool fixed) {
-    ASSERT(fixed);
-
-    SetModRM(2, base);
-    if ((base.code() & 7) == rsp.code()) {
-      SetSIB(TIMES_1, rsp, base);
-    }
-    SetDisp32(disp);
-  }
-};
-
-// ================================================================
-// Assembler
-
-class Assembler : public AssemblerBase {
-public:
-  Assembler(void *address) : AssemblerBase(address) {
-    buffer_ = new CodeBuffer(32);
-  }
-  ~Assembler() {
-    if (buffer_)
-      delete buffer_;
-    buffer_ = NULL;
-  }
-
-public:
-  void Emit1(byte_t val) {
-    buffer_->Emit8(val);
-  }
-
-  void Emit(int32_t value) {
-    buffer_->Emit32(value);
-  }
-
-  void EmitInt64(int64_t value) {
-    buffer_->Emit64(value);
-  }
-
-  // ================================================================
-  // REX
-
-  // refer android_art
-  uint8_t EmitOptionalRex(bool force, bool w, bool r, bool x, bool b) {
-    // REX.WRXB
-    // W - 64-bit operand
-    // R - MODRM.reg
-    // X - SIB.index
-    // B - MODRM.rm/SIB.base
-
-    uint8_t rex = force ? 0x40 : 0;
-    if (w) {
-      rex |= 0x48; // REX.W000
-    }
-    if (r) {
-      rex |= 0x44; // REX.0R00
-    }
-    if (x) {
-      rex |= 0x42; // REX.00X0
-    }
-    if (b) {
-      rex |= 0x41; // REX.000B
-    }
-    if (rex != 0) {
-      return rex;
-    }
-    return 0;
-  }
-
-  void Emit_64REX(uint8_t extra) {
-    uint8_t rex = EmitOptionalRex(false, true, false, false, false);
-    rex |= extra;
-    if (rex)
-      Emit1(rex);
-  }
-
-  void EmitREX_ExtraRegister(Register reg) {
-    uint8_t rex = EmitOptionalRex(false, reg.size() == 64, reg.code() > 7, false, reg.code() > 7);
-    if (rex)
-      Emit1(rex);
-  }
-
-  void EmitREX_Register(Register reg) {
-    uint8_t rex = EmitOptionalRex(false, reg.size() == 64, reg.code() > 7, false, false);
-    if (rex)
-      Emit1(rex);
-  }
-
-  void EmitREX_Register_Operand(Register reg, Operand &operand) {
-    if (reg.size() != 64)
-      UNIMPLEMENTED();
-    uint8_t rex = operand.rex();
-    rex |= EmitOptionalRex(true, reg.size() == 64, reg.code() > 7, false, false);
-    if (rex != 0) {
-      Emit1(rex);
-    }
-  }
-
-  void EmitREX_Operand(Operand &operand) {
-    uint8_t rex = operand.rex();
-    rex |= REX_PREFIX;
-    if (rex != 0) {
-      Emit1(rex);
-    }
-  }
-
-  // ================================================================
-  // Immediate
-
-  void EmitImmediate(Immediate imm, int imm_size) {
-    if (imm_size == 8) {
-      buffer_->Emit8((uint8_t)imm.value());
-    } else if (imm_size == 32) {
-      buffer_->Emit32((uint32_t)imm.value());
-    } else if (imm_size == 64) {
-      buffer_->Emit64((uint64_t)imm.value());
-    } else {
-      UNREACHABLE();
-    }
-  }
-
-  // ================================================================
-  // Operand Encoding
-
-  // ATTENTION:
-  // ModR/M == 8 registers and 24 addressing mode
-
-  void Emit_OpEn_Register_MemOperand(Register dst, Address &operand) {
-    EmitModRM_Update_Register(operand.modrm(), dst);
-    buffer_->EmitBuffer(&operand.encoding_[1], operand.length_ - 1);
-  }
-
-  void Emit_OpEn_Register_RegOperand(Register dst, Register src) {
-    EmitModRM_Register_Register(dst, src);
-  }
-
-  void Emit_OpEn_MemOperand_Immediate(uint8_t extra_opcode, Address &operand, Immediate imm) {
-    EmitModRM_Update_ExtraOpcode(operand.modrm(), extra_opcode);
-    buffer_->EmitBuffer(&operand.encoding_[1], operand.length_ - 1);
-    EmitImmediate(imm, imm.size());
-  }
-
-  void Emit_OpEn_RegOperand_Immediate(uint8_t extra_opcode, Register reg, Immediate imm) {
-    EmitModRM_ExtraOpcode_Register(extra_opcode, reg);
-    EmitImmediate(imm, imm.size());
-  }
-
-  void Emit_OpEn_MemOperand(uint8_t extra_opcode, Address &operand) {
-    EmitModRM_Update_ExtraOpcode(operand.modrm(), extra_opcode);
-    buffer_->EmitBuffer(&operand.encoding_[1], operand.length_ - 1);
-  }
-
-  void Emit_OpEn_RegOperand(uint8_t extra_opcode, Register reg) {
-    EmitModRM_ExtraOpcode_Register(extra_opcode, reg);
-  }
-
-  // Encoding: OI
-  void Emit_OpEn_OpcodeRegister_Immediate(uint8_t opcode, Register dst, Immediate imm) {
-    EmitOpcode_Register(opcode, dst);
-    EmitImmediate(imm, imm.size());
-  }
-
-  // ================================================================
-  // ModRM
-
-  inline void EmitModRM(uint8_t Mod, uint8_t RegOpcode, uint8_t RM) {
-    uint8_t ModRM = 0;
-    ModRM |= Mod << 6;
-    ModRM |= RegOpcode << 3;
-    ModRM |= RM;
-    Emit1(ModRM);
-  }
-
-  void EmitModRM_ExtraOpcode_Register(uint8_t extra_opcode, Register reg) {
-    EmitModRM(0b11, extra_opcode, reg.code());
-  }
-
-  void EmitModRM_Register_Register(Register reg1, Register reg2) {
-    EmitModRM(0b11, reg1.code(), reg2.code());
-  }
-
-  // update operand's ModRM
-  void EmitModRM_Update_Register(uint8_t modRM, Register reg) {
-    EmitModRM(ModRM_Mod(modRM), reg.low_bits(), ModRM_RM(modRM));
-  }
-
-  // update operand's ModRM
-  void EmitModRM_Update_ExtraOpcode(uint8_t modRM, uint8_t extra_opcode) {
-    EmitModRM(ModRM_Mod(modRM), extra_opcode, ModRM_RM(modRM));
-  }
-
-  // ================================================================
-  // Opcode
-  void EmitOpcode(uint8_t opcode) {
-    Emit1(opcode);
-  }
-
-  void EmitOpcode_Register(uint8_t opcode, Register reg) {
-    EmitOpcode(opcode | reg.low_bits());
-  }
-
-  // ================================================================
-  // Instruction
-
-  void pushfq() {
-    Emit1(0x9C);
-  }
-
-  void jmp(Immediate imm);
-
-  void sub(Register dst, Immediate imm) {
-    EmitREX_Register(dst);
-
-    EmitOpcode(0x81);
-
-    Emit_OpEn_RegOperand_Immediate(0x5, dst, imm);
-  }
-
-  void add(Register dst, Immediate imm) {
-    EmitREX_Register(dst);
-
-    EmitOpcode(0x81);
-
-    Emit_OpEn_RegOperand_Immediate(0x0, dst, imm);
-  }
-
-  // MOV RAX, 0x320
-  // 48 c7 c0 20 03 00 00 (MI encoding)
-  // 48 b8 20 03 00 00 00 00 00 00 (OI encoding)
-  void mov(Register dst, const Immediate imm) {
-    EmitREX_Register(dst);
-
-    Emit_OpEn_OpcodeRegister_Immediate(0xb8, dst, imm);
-  }
-
-  void mov(Address dst, const Immediate imm) {
-    EmitREX_Operand(dst);
-
-    EmitOpcode(0xc7);
-
-    Emit_OpEn_MemOperand_Immediate(0x0, dst, imm);
-  }
-
-  void mov(Register dst, Address src) {
-    EmitREX_Register(dst);
-
-    EmitOpcode(0x8B);
-
-    Emit_OpEn_Register_MemOperand(dst, src);
-  }
-
-  void mov(Address dst, Register src) {
-    EmitREX_Register_Operand(src, dst);
-
-    EmitOpcode(0x89);
-
-    Emit_OpEn_Register_MemOperand(src, dst);
-  }
-
-  void mov(Register dst, Register src) {
-    EmitREX_Register(dst);
-
-    Emit1(0x8B);
-
-    Emit_OpEn_Register_RegOperand(dst, src);
-  }
-
-  void call(Address operand) {
-    EmitREX_Operand(operand);
-
-    EmitOpcode(0xFF);
-
-    Emit_OpEn_MemOperand(0x2, operand);
-  }
-
-  void call(Immediate imm) {
-    EmitOpcode(0xe8);
-
-    EmitImmediate(imm, imm.size());
-  }
-
-  void call(Register reg) {
-    EmitREX_Register(reg);
-
-    EmitOpcode(0xFF);
-
-    Emit_OpEn_RegOperand(0x2, reg);
-  }
-
-  void pop(Register reg) {
-    EmitREX_ExtraRegister(reg);
-
-    EmitOpcode_Register(0x58, reg);
-  }
-
-  void push(Register reg) {
-    EmitREX_ExtraRegister(reg);
-
-    EmitOpcode_Register(0x50, reg);
-  }
-
-  void ret() {
-    EmitOpcode(0xc3);
-  }
-  void nop() {
-    EmitOpcode(0x90);
-  }
-};
-
-// ================================================================
-// TurboAssembler
-
-class TurboAssembler : public Assembler {
-public:
-  TurboAssembler(void *address) : Assembler(address) {
-    data_labels_ = NULL;
-  }
-
-  ~TurboAssembler() {
-    if (data_labels_) {
-      for (unsigned i = 0; i < data_labels_->getCount(); i++) {
-        RelocLabelEntry *label = (RelocLabelEntry *)data_labels_->getObject(i);
-        delete label;
-      }
-
-      delete data_labels_;
-    }
-  }
-
-  addr64_t CurrentIP();
-
-  void CallFunction(ExternalReference function) {
-#if 0
-    mov(r11, Immediate((int64_t)function.address(), 64));
-    call(r11);
-#endif
-
-    nop();
-    MovRipToRegister(VOLATILE_REGISTER);
-    call(Address(VOLATILE_REGISTER, INT32_MAX));
-    {
-      RelocLabelEntry *addrLabel = new RelocLabelEntry((uint64_t)function.address());
-      addrLabel->link_to(ip_offset(), PseudoLabel::kDisp32_off_9);
-      this->AppendRelocLabelEntry(addrLabel);
-    }
-    nop();
-  }
-
-  void MovRipToRegister(Register dst) {
-    call(Immediate(0, 32));
-    pop(dst);
-  }
-
-  // ================================================================
-  // RelocLabelEntry
-
-  void PseudoBind(PseudoLabel *label) {
-    const uint32_t bound_pc = buffer_->getSize();
-    label->bind_to(bound_pc);
-    // If some instructions have been wrote, before the label bound, we need link these `confused` instructions
-    if (label->has_confused_instructions()) {
-      label->link_confused_instructions(reinterpret_cast<CodeBuffer *>(this->GetCodeBuffer()));
-    }
-  }
-
-  void RelocBind() {
-    if (data_labels_ == NULL)
-      return;
-    for (unsigned i = 0; i < data_labels_->getCount(); i++) {
-      RelocLabelEntry *label = (RelocLabelEntry *)data_labels_->getObject(i);
-      PseudoBind(label);
-      EmitInt64(label->data());
-    }
-  }
-
-  void AppendRelocLabelEntry(RelocLabelEntry *label) {
-    if (data_labels_ == NULL) {
-      data_labels_ = new LiteMutableArray(8);
-    }
-    data_labels_->pushObject((LiteObject *)label);
-  }
-
-  LiteMutableArray *GetLabels() {
-    return data_labels_;
-  }
-
-private:
-  LiteMutableArray *data_labels_;
-};
-
-} // namespace x64
-} // namespace zz
-
-#endif
diff --git a/loader/dobby/source/core/modules/assembler/assembler-x86-shared.cc b/loader/dobby/source/core/modules/assembler/assembler-x86-shared.cc
deleted file mode 100644
index f5f560c7..00000000
--- a/loader/dobby/source/core/modules/assembler/assembler-x86-shared.cc
+++ /dev/null
@@ -1,17 +0,0 @@
-#include "platform_macro.h"
-#if defined(TARGET_ARCH_X64) || defined(TARGET_ARCH_IA32)
-
-#include "core/modules/assembler/assembler-x86-shared.h"
-
-using namespace zz::x86shared;
-
-void Assembler::jmp(Immediate imm) {
-  buffer_->Emit8(0xE9);
-  buffer_->Emit32((int)imm.value());
-}
-
-uint64_t TurboAssembler::CurrentIP() {
-  return pc_offset() + (addr_t)realized_address_;
-}
-
-#endif
\ No newline at end of file
diff --git a/loader/dobby/source/core/modules/assembler/assembler-x86-shared.h b/loader/dobby/source/core/modules/assembler/assembler-x86-shared.h
deleted file mode 100644
index a5cf76d3..00000000
--- a/loader/dobby/source/core/modules/assembler/assembler-x86-shared.h
+++ /dev/null
@@ -1,710 +0,0 @@
-#ifndef CORE_ASSEMBLER_X64_H
-#define CORE_ASSEMBLER_X64_H
-
-#include "common_header.h"
-
-#include "core/arch/x64/registers-x64.h"
-#include "core/modules/assembler/assembler.h"
-
-#include "MemoryAllocator/CodeBuffer/code-buffer-x64.h"
-
-#include "xnucxx/LiteMutableArray.h"
-#include "xnucxx/LiteIterator.h"
-
-#define IsInt8(imm) (-128 <= imm && imm <= 127)
-
-namespace zz {
-namespace x86shared {
-
-using namespace x64;
-
-constexpr Register VOLATILE_REGISTER = r11;
-
-// ================================================================
-// PseudoLabel
-
-class PseudoLabel : public Label {
-public:
-  enum PseudoLabelType { kDisp32_off_9 };
-
-  typedef struct _PseudoLabelInstruction {
-    int position_;
-    PseudoLabelType type_;
-  } PseudoLabelInstruction;
-
-public:
-  PseudoLabel(void) {
-    instructions_.initWithCapacity(8);
-  }
-  ~PseudoLabel(void) {
-    for (size_t i = 0; i < instructions_.getCount(); i++) {
-      PseudoLabelInstruction *item = (PseudoLabelInstruction *)instructions_.getObject(i);
-      delete item;
-    }
-
-    instructions_.release();
-  }
-
-  bool has_confused_instructions() {
-    return instructions_.getCount() > 0;
-  }
-
-  void link_confused_instructions(CodeBuffer *buffer = nullptr) {
-    if (!buffer)
-      UNREACHABLE();
-    CodeBuffer *_buffer = buffer;
-
-    for (size_t i = 0; i < instructions_.getCount(); i++) {
-      PseudoLabelInstruction *instruction = (PseudoLabelInstruction *)instructions_.getObject(i);
-
-      int32_t offset = pos() - instruction->position_;
-
-      switch (instruction->type_) {
-      case kDisp32_off_9: {
-        int disp32_fix_pos = instruction->position_ - sizeof(int32_t);
-        _buffer->FixBindLabel(disp32_fix_pos, offset + 9);
-      } break;
-      default:
-        UNREACHABLE();
-        break;
-      }
-    }
-  };
-
-  void link_to(int pos, PseudoLabelType type) {
-    PseudoLabelInstruction *instruction = new PseudoLabelInstruction;
-    instruction->position_ = pos;
-    instruction->type_ = type;
-    instructions_.pushObject((LiteObject *)instruction);
-  }
-
-private:
-  LiteMutableArray instructions_;
-};
-
-class RelocLabelEntry : public PseudoLabel {
-public:
-  explicit RelocLabelEntry(uint64_t data) : data_size_(0) {
-    data_ = data;
-  }
-
-  uint64_t data() {
-    return data_;
-  }
-
-private:
-  uint64_t data_;
-
-  int data_size_;
-};
-
-#define ModRM_Mod(byte) ((byte & 0b11000000) >> 6)
-#define ModRM_RegOpcode(byte) ((byte & 0b00111000) >> 3)
-#define ModRM_RM(byte) (byte & 0b00000111)
-
-typedef union _ModRM {
-  byte_t ModRM;
-  struct {
-    byte_t RM : 3;
-    byte_t RegOpcode : 3;
-    byte_t Mod : 2;
-  };
-} ModRM;
-
-// ================================================================
-// Immediate
-
-class Immediate {
-public:
-  explicit Immediate(int64_t imm) : value_(imm), value_size_(64) {
-    if ((int64_t)(int8_t)imm == imm) {
-      value_size_ = 8;
-    } else if ((int64_t)(int16_t)imm == imm) {
-      value_size_ = 8;
-    } else if ((int64_t)(int32_t)imm == imm) {
-      value_size_ = 32;
-    } else {
-      value_size_ = 64;
-    }
-  }
-
-  explicit Immediate(int64_t imm, int size) : value_(imm), value_size_(size) {
-  }
-
-  int64_t value() const {
-    return value_;
-  }
-
-  int size() const {
-    return value_size_;
-  }
-
-private:
-  const int64_t value_;
-
-  int value_size_;
-};
-
-// ================================================================
-// Operand
-
-class Operand {
-public:
-  // [base]
-  Operand(Register base);
-
-  // [base + disp/r]
-  Operand(Register base, int32_t disp);
-
-  // [base + index*scale + disp/r]
-  Operand(Register base, Register index, ScaleFactor scale, int32_t disp);
-
-  // [index*scale + disp/r]
-  Operand(Register index, ScaleFactor scale, int32_t disp);
-
-public: // Getter and Setter
-  uint8_t rex() const {
-    return rex_;
-  }
-
-  inline uint8_t rex_b() const {
-    return (rex_ & REX_B);
-  }
-
-  inline uint8_t rex_x() const {
-    return (rex_ & REX_X);
-  }
-
-  inline uint8_t rex_r() const {
-    return (rex_ & REX_R);
-  }
-
-  inline uint8_t rex_w() const {
-    return (rex_ & REX_W);
-  }
-
-  uint8_t modrm() {
-    return (encoding_at(0));
-  }
-
-  uint8_t mod() const {
-    return (encoding_at(0) >> 6) & 3;
-  }
-
-  Register rm() const {
-    int rm_rex = rex_b() << 3;
-    return Register::from_code(rm_rex + (encoding_at(0) & 7));
-  }
-
-  ScaleFactor scale() const {
-    return static_cast<ScaleFactor>((encoding_at(1) >> 6) & 3);
-  }
-
-  Register index() const {
-    int index_rex = rex_x() << 2;
-    return Register::from_code(index_rex + ((encoding_at(1) >> 3) & 7));
-  }
-
-  Register base() const {
-    int base_rex = rex_b() << 3;
-    return Register::from_code(base_rex + (encoding_at(1) & 7));
-  }
-
-  int8_t disp8() const {
-    ASSERT(length_ >= 2);
-    return static_cast<int8_t>(encoding_[length_ - 1]);
-  }
-
-  int32_t disp32() const {
-    ASSERT(length_ >= 5);
-    return static_cast<int32_t>(encoding_[length_ - 4]);
-  }
-
-protected:
-  Operand() : length_(0), rex_(REX_NONE) {
-  } // Needed by subclass Address.
-
-  void SetModRM(int mod, Register rm) {
-    ASSERT((mod & ~3) == 0);
-
-    if ((rm.code() > 7) && !((rm.Is(r12)) && (mod != 3))) {
-      rex_ |= REX_B;
-    }
-    encoding_[0] = (mod << 6) | (rm.code() & 7);
-    length_ = 1;
-  }
-
-  void SetSIB(ScaleFactor scale, Register index, Register base) {
-    ASSERT(length_ == 1);
-    ASSERT((scale & ~3) == 0);
-
-    if (base.code() > 7) {
-      ASSERT((rex_ & REX_B) == 0); // Must not have REX.B already set.
-      rex_ |= REX_B;
-    }
-    if (index.code() > 7)
-      rex_ |= REX_X;
-    encoding_[1] = (scale << 6) | ((index.code() & 7) << 3) | (base.code() & 7);
-    length_ = 2;
-  }
-
-  void SetDisp8(int8_t disp) {
-    ASSERT(length_ == 1 || length_ == 2);
-
-    encoding_[length_++] = static_cast<uint8_t>(disp);
-  }
-
-  void SetDisp32(int32_t disp) {
-    ASSERT(length_ == 1 || length_ == 2);
-
-    *(int32_t *)&encoding_[length_] = disp;
-    length_ += sizeof(disp);
-  }
-
-private:
-  // explicit Operand(Register reg) : rex_(REX_NONE) { SetModRM(3, reg); }
-
-  // Get the operand encoding byte at the given index.
-  uint8_t encoding_at(intptr_t index) const {
-    ASSERT(index >= 0 && index < length_);
-    return encoding_[index];
-  }
-
-public:
-  uint8_t length_;
-  uint8_t rex_;
-  uint8_t encoding_[6];
-};
-
-// ================================================================
-// Address
-
-class Address : public Operand {
-public:
-  Address(Register base, int32_t disp) {
-    int base_ = base.code();
-    int rbp_ = rbp.code();
-    int rsp_ = rsp.code();
-    if ((disp == 0) && ((base_ & 7) != rbp_)) {
-      SetModRM(0, base);
-      if ((base_ & 7) == rsp_) {
-        SetSIB(TIMES_1, rsp, base);
-      }
-    } else if (IsInt8(disp)) {
-      SetModRM(1, base);
-      if ((base_ & 7) == rsp_) {
-        SetSIB(TIMES_1, rsp, base);
-      }
-      SetDisp8(disp);
-    } else {
-      SetModRM(2, base);
-      if ((base_ & 7) == rsp_) {
-        SetSIB(TIMES_1, rsp, base);
-      }
-      SetDisp32(disp);
-    }
-  }
-
-  // This addressing mode does not exist.
-  Address(Register base, Register r);
-
-  Address(Register index, ScaleFactor scale, int32_t disp) {
-    ASSERT(index.code() != rsp.code()); // Illegal addressing mode.
-    SetModRM(0, rsp);
-    SetSIB(scale, index, rbp);
-    SetDisp32(disp);
-  }
-
-  // This addressing mode does not exist.
-  Address(Register index, ScaleFactor scale, Register r);
-
-  Address(Register base, Register index, ScaleFactor scale, int32_t disp) {
-    ASSERT(index.code() != rsp.code()); // Illegal addressing mode.
-    int rbp_ = rbp.code();
-    if ((disp == 0) && ((base.code() & 7) != rbp_)) {
-      SetModRM(0, rsp);
-      SetSIB(scale, index, base);
-    } else if (IsInt8(disp)) {
-      SetModRM(1, rsp);
-      SetSIB(scale, index, base);
-      SetDisp8(disp);
-    } else {
-      SetModRM(2, rsp);
-      SetSIB(scale, index, base);
-      SetDisp32(disp);
-    }
-  }
-
-  // This addressing mode does not exist.
-  Address(Register base, Register index, ScaleFactor scale, Register r);
-
-private:
-  Address(Register base, int32_t disp, bool fixed) {
-    ASSERT(fixed);
-    SetModRM(2, base);
-    if ((base.code() & 7) == rsp.code()) {
-      SetSIB(TIMES_1, rsp, base);
-    }
-    SetDisp32(disp);
-  }
-};
-
-// ================================================================
-// Assembler
-
-class Assembler : public AssemblerBase {
-public:
-  Assembler(void *address, int mode) : AssemblerBase(address) : mode_(mode) {
-    buffer_ = new CodeBuffer(32);
-  }
-  ~Assembler() {
-    if (buffer_)
-      delete buffer_;
-    buffer_ = NULL
-  }
-
-public:
-  void Emit1(byte_t val) {
-    buffer_->Emit8(val);
-  }
-
-  void Emit(int32_t value) {
-    buffer_->Emit32(value);
-  }
-
-  void EmitInt64(int64_t value) {
-    buffer_->Emit64(value);
-  }
-
-  void EmitAddr(uint64_t addr) {
-    if (mode == 64) {
-      EmitInt64(int64_t)addr);
-    } else {
-      EmitI((int32_t)addr);
-    }
-  }
-
-  // ================================================================
-  // REX
-
-  // refer android_art
-  uint8_t EmitOptionalRex(bool force, bool w, bool r, bool x, bool b) {
-    // REX.WRXB
-    // W - 64-bit operand
-    // R - MODRM.reg
-    // X - SIB.index
-    // B - MODRM.rm/SIB.base
-
-    uint8_t rex = force ? 0x40 : 0;
-    if (w) {
-      rex |= 0x48; // REX.W000
-    }
-    if (r) {
-      rex |= 0x44; // REX.0R00
-    }
-    if (x) {
-      rex |= 0x42; // REX.00X0
-    }
-    if (b) {
-      rex |= 0x41; // REX.000B
-    }
-    if (rex != 0) {
-      return rex;
-    }
-    return 0;
-  }
-
-  void Emit_64REX(uint8_t extra) {
-    uint8_t rex = EmitOptionalRex(false, true, false, false, false);
-    rex |= extra;
-    if (rex)
-      Emit1(rex);
-  }
-
-  void EmitREX_ExtraRegister(Register reg) {
-    uint8_t rex = EmitOptionalRex(false, reg.size() == 64, reg.code() > 7, false, reg.code() > 7);
-    if (rex)
-      Emit1(rex);
-  }
-
-  void EmitREX_Register(Register reg) {
-    uint8_t rex = EmitOptionalRex(false, reg.size() == 64, reg.code() > 7, false, false);
-    if (rex)
-      Emit1(rex);
-  }
-
-  void EmitREX_Register_Operand(Register reg, Operand &operand) {
-    if (reg.size() != 64)
-      UNIMPLEMENTED();
-    uint8_t rex = operand.rex();
-    rex |= EmitOptionalRex(true, reg.size() == 64, reg.code() > 7, false, false);
-    if (rex != 0) {
-      Emit1(rex);
-    }
-  }
-
-  void EmitREX_Operand(Operand &operand) {
-    uint8_t rex = operand.rex();
-    rex |= REX_PREFIX;
-    if (rex != 0) {
-      Emit1(rex);
-    }
-  }
-
-  // ================================================================
-  // Immediate
-
-  void EmitImmediate(Immediate imm, int imm_size) {
-    if (imm_size == 8) {
-      buffer_->Emit8((uint8_t)imm.value());
-    } else if (imm_size == 32) {
-      buffer_->Emit32((uint32_t)imm.value());
-    } else if (imm_size == 64) {
-      buffer_->Emit64((uint64_t)imm.value());
-    } else {
-      UNREACHABLE();
-    }
-  }
-
-  // ================================================================
-  // Operand Encoding
-
-  // ATTENTION:
-  // ModR/M == 8 registers and 24 addressing mode
-
-  // RM or MR
-  void Emit_OpEn_Register_MemOperand(Register dst, Address &operand) {
-    EmitModRM_Update_Register(operand.modrm(), dst);
-    buffer_->EmitBuffer(&operand.encoding_[1], operand.length_ - 1);
-  }
-  void Emit_OpEn_Register_RegOperand(Register dst, Register src) {
-    EmitModRM_Register_Register(dst, src);
-  }
-
-  void Emit_OpEn_MemOperand_Immediate(uint8_t extra_opcode, Address &operand, Immediate imm) {
-  }
-  void Emit_OpEn_RegOperand_Immediate(uint8_t extra_opcode, Register reg, Immediate imm) {
-    EmitModRM_ExtraOpcode_Register(extra_opcode, reg);
-    EmitImmediate(imm, imm.size());
-  }
-
-  void Emit_OpEn_MemOperand(uint8_t extra_opcode, Address &operand) {
-    EmitModRM_Update_ExtraOpcode(operand.modrm(), extra_opcode);
-    buffer_->EmitBuffer(&operand.encoding_[1], operand.length_ - 1);
-  }
-  void Emit_OpEn_RegOperand(uint8_t extra_opcode, Register reg) {
-    EmitModRM_ExtraOpcode_Register(extra_opcode, reg);
-  }
-
-  // Encoding: OI
-  void Emit_OpEn_OpcodeRegister_Immediate(uint8_t opcode, Register dst, Immediate imm) {
-    EmitOpcode_Register(opcode, dst);
-    EmitImmediate(imm, imm.size());
-  }
-
-  // ================================================================
-  // ModRM
-
-  inline void EmitModRM(uint8_t Mod, uint8_t RegOpcode, uint8_t RM) {
-    uint8_t ModRM = 0;
-    ModRM |= Mod << 6;
-    ModRM |= RegOpcode << 3;
-    ModRM |= RM;
-    Emit1(ModRM);
-  }
-
-  void EmitModRM_ExtraOpcode_Register(uint8_t extra_opcode, Register reg) {
-    EmitModRM(0b11, extra_opcode, reg.code());
-  }
-
-  void EmitModRM_Register_Register(Register reg1, Register reg2) {
-    EmitModRM(0b11, reg1.code(), reg2.code());
-  }
-
-  // update operand's ModRM
-  void EmitModRM_Update_Register(uint8_t modRM, Register reg) {
-    EmitModRM(ModRM_Mod(modRM), reg.low_bits(), ModRM_RM(modRM));
-  }
-
-  // update operand's ModRM
-  void EmitModRM_Update_ExtraOpcode(uint8_t modRM, uint8_t extra_opcode) {
-    EmitModRM(ModRM_Mod(modRM), extra_opcode, ModRM_RM(modRM));
-  }
-
-  // ================================================================
-  // Opcode
-  void EmitOpcode(uint8_t opcode) {
-    Emit1(opcode);
-  }
-
-  void EmitOpcode_Register(uint8_t opcode, Register reg) {
-    EmitOpcode(opcode | reg.low_bits());
-  }
-
-  // ================================================================
-  // Instruction
-
-  void pushfq() {
-    Emit1(0x9C);
-  }
-
-  void jmp(Immediate imm);
-
-  void sub(Register dst, Immediate imm) {
-    EmitREX_Register(dst);
-    EmitOpcode(0x81);
-    Emit_OpEn_RegOperand_Immediate(0x5, dst, imm);
-  }
-
-  void add(Register dst, Immediate imm) {
-    EmitREX_Register(dst);
-    EmitOpcode(0x81);
-    Emit_OpEn_RegOperand_Immediate(0x0, dst, imm);
-  }
-
-  // MOV RAX, 0x320
-  // 48 c7 c0 20 03 00 00 (MI encoding)
-  // 48 b8 20 03 00 00 00 00 00 00 (OI encoding)
-  void mov(Register dst, const Immediate imm) {
-    EmitREX_Register(dst);
-
-    // OI encoding
-    Emit_OpEn_OpcodeRegister_Immediate(0xb8, dst, imm);
-  }
-
-  void mov(Register dst, Address src) {
-    EmitREX_Register(dst);
-
-    EmitOpcode(0x8B);
-
-    Emit_OpEn_Register_MemOperand(dst, src);
-  }
-
-  void mov(Address dst, Register src) {
-    EmitREX_Register_Operand(src, dst);
-    EmitOpcode(0x89);
-    Emit_OpEn_Register_MemOperand(src, dst);
-  }
-
-  void mov(Register dst, Register src) {
-    EmitREX_Register(dst);
-
-    Emit1(0x8B);
-
-    Emit_OpEn_Register_RegOperand(dst, src);
-  }
-
-  void call(Address operand) {
-    EmitREX_Operand(operand);
-
-    EmitOpcode(0xFF);
-
-    Emit_OpEn_MemOperand(0x2, operand);
-  }
-
-  void call(Immediate imm) {
-    EmitOpcode(0xe8);
-    EmitImmediate(imm, imm.size());
-  }
-
-  void call(Register reg) {
-    EmitREX_Register(reg);
-    EmitOpcode(0xFF);
-    Emit_OpEn_RegOperand(0x2, reg);
-  }
-
-  void pop(Register reg) {
-    EmitREX_ExtraRegister(reg);
-    EmitOpcode_Register(0x58, reg);
-  }
-
-  void push(Register reg) {
-    EmitREX_ExtraRegister(reg);
-    EmitOpcode_Register(0x50, reg);
-  }
-
-  void ret() {
-    EmitOpcode(0xc3);
-  }
-  void nop() {
-    EmitOpcode(0x90);
-  }
-
-private:
-  int mode_;
-};
-
-// ================================================================
-// TurboAssembler
-
-class TurboAssembler : public Assembler {
-public:
-  TurboAssembler(void *address, int mode) : Assembler(address, mode) {
-    data_labels_ = NULL;
-  }
-
-  addr64_t CurrentIP();
-
-  void CallFunction(ExternalReference function) {
-#if 0
-    mov(r11, Immediate((int64_t)function.address(), 64));
-    call(r11);
-#endif
-
-    nop();
-    MovRipToRegister(VOLATILE_REGISTER);
-    call(Address(VOLATILE_REGISTER, INT32_MAX));
-    {
-      RelocLabelEntry *addrLabel = new RelocLabelEntry((uint64_t)function.address());
-      addrLabel->link_to(ip_offset(), PseudoLabel::kDisp32_off_9);
-      this->AppendRelocLabelEntry(addrLabel);
-    }
-    nop();
-  }
-
-  void MovRipToRegister(Register dst) {
-    call(Immediate(0, 32));
-    pop(dst);
-  }
-
-  // ================================================================
-  // RelocLabelEntry
-
-  void PseudoBind(PseudoLabel *label) {
-    const addr_t bound_pc = buffer_->getSize();
-    label->bind_to(bound_pc);
-    // If some instructions have been wrote, before the label bound, we need link these `confused` instructions
-    if (label->has_confused_instructions()) {
-      label->link_confused_instructions(reinterpret_cast<CodeBuffer *>(this->GetCodeBuffer()));
-    }
-  }
-
-  void RelocBind() {
-    if (data_labels_ == NULL)
-      return;
-    for (size_t i = 0; i < data_labels_->getCount(); i++) {
-      RelocLabelEntry *label = (RelocLabelEntry *)data_labels_->getObject(i);
-      PseudoBind(label);
-      EmitAddr(label->data());
-    }
-  }
-
-  void AppendRelocLabelEntry(RelocLabelEntry *label) {
-    if (data_labels_ == NULL) {
-      data_labels_ = new LiteMutableArray(8);
-    }
-    data_labels_->pushObject((LiteObject *)label);
-  }
-
-  LiteMutableArray *GetLabels() {
-    return data_labels_;
-  }
-
-private:
-  LiteMutableArray *data_labels_;
-};
-
-} // namespace x86shared
-} // namespace zz
-
-#endif
diff --git a/loader/dobby/source/core/modules/assembler/assembler.cc b/loader/dobby/source/core/modules/assembler/assembler.cc
deleted file mode 100644
index 33a0106a..00000000
--- a/loader/dobby/source/core/modules/assembler/assembler.cc
+++ /dev/null
@@ -1,81 +0,0 @@
-#include "core/modules/assembler/assembler.h"
-#include "logging/logging.h"
-
-namespace zz {
-
-// ===== Label =====
-
-bool Label::is_bound() const {
-  return pos_ < 0;
-}
-bool Label::is_unused() const {
-  return pos_ == 0 && near_link_pos_ == 0;
-}
-bool Label::is_linked() const {
-  return pos_ > 0;
-}
-bool Label::is_near_linked() const {
-  return near_link_pos_ > 0;
-}
-int Label::pos() const {
-  if (pos_ < 0)
-    return -pos_ - 1;
-  if (pos_ > 0)
-    return pos_ - 1;
-  return 0;
-}
-void Label::bind_to(int pos) {
-  pos_ = -pos - 1;
-}
-void Label::link_to(int pos) {
-  // for special condition: link_to(0)
-  pos_ = pos + 1;
-}
-
-const void *ExternalReference::address() {
-  return address_;
-}
-
-AssemblerBase::AssemblerBase(void *address) {
-  realized_address_ = address;
-
-  buffer_ = NULL;
-
-  if (realized_address_ != NULL) {
-    DLOG(0, "[assembler] Create fixed address at %p", realized_address_);
-  }
-}
-
-AssemblerBase::~AssemblerBase() {
-  buffer_ = NULL;
-}
-
-// TODO: mov to x64
-int AssemblerBase::ip_offset() const {
-  return reinterpret_cast<CodeBufferBase *>(buffer_)->getSize();
-}
-
-// TODO: mov to arm / arm64
-int AssemblerBase::pc_offset() const {
-  return reinterpret_cast<CodeBufferBase *>(buffer_)->getSize();
-}
-
-CodeBuffer *AssemblerBase::GetCodeBuffer() {
-  return buffer_;
-}
-
-void AssemblerBase::SetRealizedAddress(void *address) {
-  realized_address_ = address;
-}
-
-void *AssemblerBase::GetRealizedAddress() {
-  return realized_address_;
-}
-
-void AssemblerBase::FlushICache(addr_t start, int size) {
-}
-
-void AssemblerBase::FlushICache(addr_t start, addr_t end) {
-}
-
-} // namespace zz
diff --git a/loader/dobby/source/core/modules/assembler/assembler.h b/loader/dobby/source/core/modules/assembler/assembler.h
deleted file mode 100644
index 6c062be8..00000000
--- a/loader/dobby/source/core/modules/assembler/assembler.h
+++ /dev/null
@@ -1,102 +0,0 @@
-#ifndef CORE_ASSEMBLER_H
-#define CORE_ASSEMBLER_H
-
-#include "MemoryAllocator/CodeBuffer/CodeBufferBase.h"
-
-class CodeBuffer;
-
-namespace zz {
-
-class Label {
-public:
-  Label() : pos_(0), near_link_pos_(0) {
-  }
-
-public:
-  bool is_bound() const;
-
-  bool is_unused() const;
-
-  bool is_linked() const;
-
-  bool is_near_linked() const;
-
-  int pos() const;
-
-  void bind_to(int pos);
-
-  void link_to(int pos);
-
-private:
-  // pos_: "< 0", indicate the Label is Binded, "> 0", indicate the Label is Linked, "= 0" indicate the Label is
-  // iter-terminal or unused
-  int pos_;
-  int near_link_pos_;
-};
-
-class ExternalReference {
-public:
-  explicit ExternalReference(void *address) : address_(address) {
-#if __APPLE__
-#if __has_feature(ptrauth_calls)
-    address_ = __builtin_ptrauth_strip(address, ptrauth_key_asia);
-#endif
-#endif
-  }
-
-  const void *address();
-
-private:
-  const void *address_;
-};
-
-class AssemblerBase {
-public:
-  explicit AssemblerBase(void *address);
-
-  ~AssemblerBase();
-
-  // === IP / PC register ===
-
-  int ip_offset() const;
-
-  int pc_offset() const;
-
-  // === CodeBuffer ===
-
-  CodeBuffer *GetCodeBuffer();
-
-  // === Realized Address ===
-
-  virtual void *GetRealizedAddress();
-
-  virtual void SetRealizedAddress(void *address);
-
-  // === CPU Cache ===
-
-  static void FlushICache(addr_t start, int size);
-
-  static void FlushICache(addr_t start, addr_t end);
-
-protected:
-  CodeBuffer *buffer_;
-
-  void *realized_address_;
-};
-
-} // namespace zz
-
-#if 0
-#include "globals.h"
-#if TARGET_ARCH_ARM
-#include "core/modules/assembler/assembler-arm.h"
-#elif TARGET_ARCH_ARM64
-#include "core/modules/assembler/assembler-arm64.h"
-#elif TARGET_ARCH_X64
-#include "core/modules/assembler/assembler-x64.h"
-#else
-#error "unsupported architecture"
-#endif
-#endif
-
-#endif
diff --git a/loader/dobby/source/core/modules/codegen/codegen-arm.cc b/loader/dobby/source/core/modules/codegen/codegen-arm.cc
deleted file mode 100644
index dfdff9de..00000000
--- a/loader/dobby/source/core/modules/codegen/codegen-arm.cc
+++ /dev/null
@@ -1,19 +0,0 @@
-#include "platform_macro.h"
-#if defined(TARGET_ARCH_ARM)
-
-#include "core/modules/codegen/codegen-arm.h"
-
-namespace zz {
-namespace arm {
-
-void CodeGen::LiteralLdrBranch(uint32_t address) {
-  TurboAssembler *turbo_assembler_ = reinterpret_cast<TurboAssembler *>(this->assembler_);
-#define _ turbo_assembler_->
-  _ ldr(pc, MemOperand(pc, -4));
-  turbo_assembler_->GetCodeBuffer()->Emit32((addr_t)address);
-}
-
-} // namespace arm
-} // namespace zz
-
-#endif
\ No newline at end of file
diff --git a/loader/dobby/source/core/modules/codegen/codegen-arm.h b/loader/dobby/source/core/modules/codegen/codegen-arm.h
deleted file mode 100644
index da796bc3..00000000
--- a/loader/dobby/source/core/modules/codegen/codegen-arm.h
+++ /dev/null
@@ -1,22 +0,0 @@
-#ifndef CORE_CODEGEN_ARM_H
-#define CORE_CODEGEN_ARM_H
-
-#include "core/modules/codegen/codegen.h"
-#include "core/modules/assembler/assembler.h"
-#include "core/modules/assembler/assembler-arm.h"
-
-namespace zz {
-namespace arm {
-
-class CodeGen : public CodeGenBase {
-public:
-  CodeGen(TurboAssembler *turbo_assembler) : CodeGenBase(turbo_assembler) {
-  }
-
-  void LiteralLdrBranch(uint32_t address);
-};
-
-} // namespace arm
-} // namespace zz
-
-#endif
\ No newline at end of file
diff --git a/loader/dobby/source/core/modules/codegen/codegen-arm64.cc b/loader/dobby/source/core/modules/codegen/codegen-arm64.cc
deleted file mode 100644
index dc6b12e6..00000000
--- a/loader/dobby/source/core/modules/codegen/codegen-arm64.cc
+++ /dev/null
@@ -1,24 +0,0 @@
-#include "platform_macro.h"
-#if defined(TARGET_ARCH_ARM64)
-
-#include "dobby_internal.h"
-#include "core/modules/codegen/codegen-arm64.h"
-
-namespace zz {
-namespace arm64 {
-
-void CodeGen::LiteralLdrBranch(uint64_t address) {
-  TurboAssembler *turbo_assembler_ = reinterpret_cast<TurboAssembler *>(this->assembler_);
-#define _ turbo_assembler_->
-  PseudoLabel address_ptr;
-
-  _ Ldr(TMP_REG_0, &address_ptr);
-  _ br(TMP_REG_0);
-  _ PseudoBind(&address_ptr);
-  _ EmitInt64(address);
-}
-
-} // namespace arm64
-} // namespace zz
-
-#endif
diff --git a/loader/dobby/source/core/modules/codegen/codegen-arm64.h b/loader/dobby/source/core/modules/codegen/codegen-arm64.h
deleted file mode 100644
index 5987d010..00000000
--- a/loader/dobby/source/core/modules/codegen/codegen-arm64.h
+++ /dev/null
@@ -1,21 +0,0 @@
-#ifndef CORE_CODEGEN_ARM64_H
-#define CORE_CODEGEN_ARM64_H
-
-#include "core/modules/codegen/codegen.h"
-#include "core/modules/assembler/assembler.h"
-#include "core/modules/assembler/assembler-arm64.h"
-
-namespace zz {
-namespace arm64 {
-
-class CodeGen : public CodeGenBase {
-public:
-  CodeGen(TurboAssembler *turbo_assembler) : CodeGenBase(turbo_assembler) {
-  }
-  void LiteralLdrBranch(uint64_t address);
-};
-
-} // namespace arm64
-} // namespace zz
-
-#endif
\ No newline at end of file
diff --git a/loader/dobby/source/core/modules/codegen/codegen-ia32.cc b/loader/dobby/source/core/modules/codegen/codegen-ia32.cc
deleted file mode 100644
index 3bf1b61d..00000000
--- a/loader/dobby/source/core/modules/codegen/codegen-ia32.cc
+++ /dev/null
@@ -1,23 +0,0 @@
-#include "platform_macro.h"
-#if defined(TARGET_ARCH_IA32)
-
-#include "core/modules/codegen/codegen-ia32.h"
-
-namespace zz {
-namespace x86 {
-
-void CodeGen::JmpNear(uint32_t address) {
-  TurboAssembler *turbo_assembler_ = reinterpret_cast<TurboAssembler *>(this->assembler_);
-#define _ turbo_assembler_->
-#define __ turbo_assembler_->GetCodeBuffer()->
-  uint32_t currIP = turbo_assembler_->CurrentIP() + 5;
-  dword offset = (dword)(address - currIP);
-
-  __ Emit8(0xe9);
-  __ Emit32(offset);
-}
-
-} // namespace x86
-} // namespace zz
-
-#endif
\ No newline at end of file
diff --git a/loader/dobby/source/core/modules/codegen/codegen-ia32.h b/loader/dobby/source/core/modules/codegen/codegen-ia32.h
deleted file mode 100644
index d10f3e8a..00000000
--- a/loader/dobby/source/core/modules/codegen/codegen-ia32.h
+++ /dev/null
@@ -1,22 +0,0 @@
-#ifndef CORE_CODEGEN_X86_H
-#define CORE_CODEGEN_X86_H
-
-#include "core/modules/codegen/codegen.h"
-#include "core/modules/assembler/assembler.h"
-#include "core/modules/assembler/assembler-ia32.h"
-
-namespace zz {
-namespace x86 {
-
-class CodeGen : public CodeGenBase {
-public:
-  CodeGen(TurboAssembler *turbo_assembler) : CodeGenBase(turbo_assembler) {
-  }
-
-  void JmpNear(uint32_t address);
-};
-
-} // namespace x86
-} // namespace zz
-
-#endif
\ No newline at end of file
diff --git a/loader/dobby/source/core/modules/codegen/codegen-x64.cc b/loader/dobby/source/core/modules/codegen/codegen-x64.cc
deleted file mode 100644
index c3bd7606..00000000
--- a/loader/dobby/source/core/modules/codegen/codegen-x64.cc
+++ /dev/null
@@ -1,25 +0,0 @@
-#include "platform_macro.h"
-#if defined(TARGET_ARCH_X64)
-
-#include "core/modules/codegen/codegen-x64.h"
-
-namespace zz {
-namespace x64 {
-
-void CodeGen::JmpNearIndirect(uint64_t address) {
-  TurboAssembler *turbo_assembler_ = reinterpret_cast<TurboAssembler *>(this->assembler_);
-#define _ turbo_assembler_->
-#define __ turbo_assembler_->GetCodeBuffer()->
-  uint64_t currIP = turbo_assembler_->CurrentIP() + 6;
-  dword offset = (dword)(address - currIP);
-
-  // RIP-relative addressing
-  __ Emit8(0xFF);
-  __ Emit8(0x25);
-  __ Emit32(offset);
-}
-
-} // namespace x64
-} // namespace zz
-
-#endif
\ No newline at end of file
diff --git a/loader/dobby/source/core/modules/codegen/codegen-x64.h b/loader/dobby/source/core/modules/codegen/codegen-x64.h
deleted file mode 100644
index cf7c5e69..00000000
--- a/loader/dobby/source/core/modules/codegen/codegen-x64.h
+++ /dev/null
@@ -1,22 +0,0 @@
-#ifndef CORE_CODEGEN_X64_H
-#define CORE_CODEGEN_X64_H
-
-#include "core/modules/codegen/codegen.h"
-#include "core/modules/assembler/assembler.h"
-#include "core/modules/assembler/assembler-x64.h"
-
-namespace zz {
-namespace x64 {
-
-class CodeGen : public CodeGenBase {
-public:
-  CodeGen(TurboAssembler *turbo_assembler) : CodeGenBase(turbo_assembler) {
-  }
-
-  void JmpNearIndirect(uint64_t address);
-};
-
-} // namespace x64
-} // namespace zz
-
-#endif
\ No newline at end of file
diff --git a/loader/dobby/source/core/modules/codegen/codegen.h b/loader/dobby/source/core/modules/codegen/codegen.h
deleted file mode 100644
index 593ee102..00000000
--- a/loader/dobby/source/core/modules/codegen/codegen.h
+++ /dev/null
@@ -1,17 +0,0 @@
-#ifndef CORE_CODEGEN_H
-#define CORE_CODEGEN_H
-
-#include "core/modules/assembler/assembler.h"
-
-using namespace zz;
-
-class CodeGenBase {
-public:
-  CodeGenBase(AssemblerBase *assembler) : assembler_(assembler) {
-  }
-
-protected:
-  AssemblerBase *assembler_;
-};
-
-#endif
\ No newline at end of file
diff --git a/loader/dobby/source/core/modules/emulator/dummy.cc b/loader/dobby/source/core/modules/emulator/dummy.cc
deleted file mode 100644
index e69de29b..00000000
diff --git a/loader/dobby/source/dobby.cpp b/loader/dobby/source/dobby.cpp
deleted file mode 100644
index 4285b291..00000000
--- a/loader/dobby/source/dobby.cpp
+++ /dev/null
@@ -1,31 +0,0 @@
-#if defined(__linux__) || defined(__APPLE__)
-#include <unistd.h>
-#include <syslog.h>
-
-#endif
-
-#include "dobby_internal.h"
-
-#include "Interceptor.h"
-
-PUBLIC const char *DobbyBuildVersion() {
-  return __DOBBY_BUILD_VERSION__;
-}
-
-PUBLIC int DobbyDestroy(void *address) {
-  // check if we already hook
-  HookEntry *entry = Interceptor::SharedInstance()->FindHookEntry(address);
-  if (entry) {
-    uint8_t *buffer = entry->origin_chunk_.chunk_buffer;
-    uint32_t buffer_size = entry->origin_chunk_.chunk.length;
-#if defined(TARGET_ARCH_ARM)
-    address = (void *)((addr_t)address - 1);
-#endif
-    CodePatch(address, buffer, buffer_size);
-    Interceptor::SharedInstance()->RemoveHookEntry(address);
-    return RT_SUCCESS;
-  }
-
-  return RT_FAILED;
-}
-
diff --git a/loader/dobby/source/dobby_internal.h b/loader/dobby/source/dobby_internal.h
deleted file mode 100644
index b037d88a..00000000
--- a/loader/dobby/source/dobby_internal.h
+++ /dev/null
@@ -1,57 +0,0 @@
-#ifndef DOBBY_INTERNAL_H
-#define DOBBY_INTERNAL_H
-
-#include "dobby.h"
-
-#include "logging/logging.h"
-#include "logging/check_logging.h"
-
-#include "xnucxx/LiteMemOpt.h"
-#include "xnucxx/LiteMutableArray.h"
-#include "xnucxx/LiteMutableBuffer.h"
-#include "xnucxx/LiteIterator.h"
-
-#include "UnifiedInterface/platform.h"
-
-#include "PlatformUnifiedInterface/StdMemory.h"
-#include "PlatformUnifiedInterface/ExecMemory/CodePatchTool.h"
-#include "PlatformUnifiedInterface/ExecMemory/ClearCacheTool.h"
-
-#include "MemoryAllocator/MemoryArena.h"
-#include "MemoryAllocator/AssemblyCodeBuilder.h"
-
-#include <stdlib.h>
-#include <string.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdarg.h>
-
-typedef struct _AssemblyCodeChunkBuffer {
-  AssemblyCodeChunk chunk;
-  uint8_t chunk_buffer[64];
-} AssemblyCodeChunkBuffer;
-
-typedef enum { kFunctionWrapper, kFunctionInlineHook, kDynamicBinaryInstrument } HookEntryType;
-
-typedef struct {
-  int id;
-  int type;
-
-  union {
-    void *target_address;
-    void *function_address;
-    void *instruction_address;
-  };
-
-  void *route;
-
-  // fixed-instructions which we relocated(patched)
-  union {
-    void *relocated_origin_instructions;
-    void *relocated_origin_function;
-  };
-
-  AssemblyCodeChunkBuffer origin_chunk_;
-} HookEntry;
-
-#endif
\ No newline at end of file
diff --git a/loader/dobby/source/include/common_header.h b/loader/dobby/source/include/common_header.h
deleted file mode 100644
index 094bc83d..00000000
--- a/loader/dobby/source/include/common_header.h
+++ /dev/null
@@ -1,11 +0,0 @@
-#ifndef COMMON_HEADER_H
-#define COMMON_HEADER_H
-
-#include "include/type_macro.h"
-#include "include/platform_macro.h"
-#include "include/utility_macro.h"
-
-#include "logging/logging.h"
-#include "logging/check_logging.h"
-
-#endif
\ No newline at end of file
diff --git a/loader/dobby/source/include/list_structure.h b/loader/dobby/source/include/list_structure.h
deleted file mode 100644
index ad07ff8e..00000000
--- a/loader/dobby/source/include/list_structure.h
+++ /dev/null
@@ -1,52 +0,0 @@
-#pragma once
-
-struct list_head {
-  struct list_head *next;
-  struct list_head *prev;
-};
-#define container_of(ptr, type, member)                                                                                \
-  ({                                                                                                                   \
-    const __typeof(((type *)0)->member) *__mptr = (ptr);                                                               \
-    (type *)((char *)__mptr - offsetof(type, member));                                                                 \
-  })
-
-#define INIT_LIST_HEAD(ptr)                                                                                            \
-  do {                                                                                                                 \
-    (ptr)->next = (ptr);                                                                                               \
-    (ptr)->prev = (ptr);                                                                                               \
-  } while (0)
-
-static inline int list_empty(struct list_head *head) {
-  return head->next == head;
-}
-
-static void __list_add(struct list_head *new_node, struct list_head *prev, struct list_head *next) {
-  next->prev = new_node;
-  new_node->next = next;
-  new_node->prev = prev;
-  prev->next = new_node;
-}
-
-static inline void list_add(struct list_head *new_node, struct list_head *head) {
-  __list_add(new_node, head, head->next);
-}
-
-static inline void __list_del(struct list_head *prev, struct list_head *next) {
-  next->prev = prev;
-  prev->next = next;
-}
-
-static inline void list_del(struct list_head *entry) {
-  __list_del(entry->prev, entry->next);
-  entry->next = NULL;
-  entry->prev = NULL;
-}
-
-#define list_entry(ptr, type, member) container_of(ptr, type, member)
-
-#define list_first_entry(ptr, type, member) list_entry((ptr)->next, type, member)
-
-#define list_next_entry(pos, member) list_entry((pos)->member.next, __typeof(*(pos)), member)
-
-#define list_for_each_entry(pos, head, member)                                                                         \
-  for (pos = list_first_entry(head, __typeof(*pos), member); &pos->member != (head); pos = list_next_entry(pos, member))
\ No newline at end of file
diff --git a/loader/dobby/source/include/platform_macro.h b/loader/dobby/source/include/platform_macro.h
deleted file mode 100644
index 95c25d7a..00000000
--- a/loader/dobby/source/include/platform_macro.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#pragma once
-
-#if defined(_M_X64) || defined(__x86_64__)
-#define TARGET_ARCH_X64 1
-#elif defined(_M_IX86) || defined(__i386__)
-#define TARGET_ARCH_IA32 1
-#elif defined(__AARCH64EL__)
-#define TARGET_ARCH_ARM64 1
-#elif defined(__ARMEL__)
-#define TARGET_ARCH_ARM 1
-#elif defined(__mips64)
-#define TARGET_ARCH_MIPS64 1
-#elif defined(__MIPSEB__) || defined(__MIPSEL__)
-#define TARGET_ARCH_MIPS 1
-#elif defined(_ARCH_PPC)
-#define TARGET_ARCH_PPC 1
-#else
-#error Target architecture was not detected as supported by Dobby
-#endif
diff --git a/loader/dobby/source/include/type_macro.h b/loader/dobby/source/include/type_macro.h
deleted file mode 100644
index 013e9313..00000000
--- a/loader/dobby/source/include/type_macro.h
+++ /dev/null
@@ -1,38 +0,0 @@
-#pragma once
-
-#include <stdint.h>
-
-#ifndef __addr_32_64_t_defined
-#define __addr_32_64_t_defined
-typedef uint32_t addr32_t;
-typedef uint64_t addr64_t;
-#endif
-
-#ifndef __addr_t_defined
-#define __addr_t_defined
-typedef uintptr_t addr_t;
-#endif
-
-#ifndef __byte_defined
-#define __byte_defined
-typedef unsigned char byte_t;
-#endif
-
-#ifndef __uint_defined
-#define __uint_defined
-typedef unsigned int uint;
-#endif
-
-#ifndef __word_defined
-#define __word_defined
-typedef short word;
-#endif
-
-#ifndef __dword_defined
-#define __dword_defined
-typedef int dword;
-#endif
-
-#ifndef NULL
-#define NULL 0
-#endif
\ No newline at end of file
diff --git a/loader/dobby/source/include/utility_macro.h b/loader/dobby/source/include/utility_macro.h
deleted file mode 100644
index 74bb73d6..00000000
--- a/loader/dobby/source/include/utility_macro.h
+++ /dev/null
@@ -1,63 +0,0 @@
-#pragma once
-
-// offset of struct member
-#define OFFSETOF(TYPE, ELEMENT) ((size_t) & (((TYPE *)0)->ELEMENT))
-
-// assert
-#include <assert.h>
-#define ASSERT(X)
-
-// left/right shift
-#define LeftShift(a, b, c) ((a & ((1 << b) - 1)) << c)
-#define RightShift(a, b, c) ((a >> c) & ((1 << b) - 1))
-
-// align
-#ifndef ALIGN
-#define ALIGN ALIGN_FLOOR
-#endif
-#define ALIGN_FLOOR(address, range) ((addr_t)address & ~((addr_t)range - 1))
-#define ALIGN_CEIL(address, range) (((addr_t)address + (addr_t)range - 1) & ~((addr_t)range - 1))
-
-// borrow from gdb, refer: binutils-gdb/gdb/arch/arm.h
-#define submask(x) ((1L << ((x) + 1)) - 1)
-#define bits(obj, st, fn) (((obj) >> (st)) & submask((fn) - (st)))
-#define bit(obj, st) (((obj) >> (st)) & 1)
-#define sbits(obj, st, fn) ((long)(bits(obj, st, fn) | ((long)bit(obj, fn) * ~submask(fn - st))))
-
-// make it easy
-#define set_bit(obj, st, bit) obj = (((~(1 << st)) & obj) | (bit << st))
-#define set_bits(obj, st, fn, bits) obj = (((~(submask(fn - st) << st)) & obj) | (bits << st))
-
-// definition to expand macro then apply to pragma message
-// #pragma message(VAR_NAME_VALUE(HOST_OS_IOS))
-#define VALUE_TO_STRING(x) #x
-#define VALUE(x) VALUE_TO_STRING(x)
-#define VAR_NAME_VALUE(var) #var "=" VALUE(var)
-
-// format print
-#ifdef __LP64__
-#define __PRI_64_prefix "l"
-#define __PRI_PTR_prefix "l"
-#else
-#define __PRI_64_prefix "ll"
-#define __PRI_PTR_prefix
-#endif
-#define PRIxPTR __PRI_PTR_prefix "x" /* uintptr_t */
-
-// deprecated declared
-#if defined(__GNUC__) || defined(__clang__)
-#define DEPRECATED __attribute__((deprecated))
-#elif defined(_MSC_VER)
-#define DEPRECATED __declspec(deprecated)
-#else
-#pragma message("WARNING: You need to implement DEPRECATED for this compiler")
-#define DEPRECATED
-#endif
-
-// export method
-#if defined(_WIN32)
-#define PUBLIC
-#else
-#define PUBLIC __attribute__((visibility("default")))
-#define INTERNAL __attribute__((visibility("internal")))
-#endif
\ No newline at end of file
diff --git a/loader/dobby/tests/CMakelists.txt b/loader/dobby/tests/CMakelists.txt
deleted file mode 100644
index 2df5fe7e..00000000
--- a/loader/dobby/tests/CMakelists.txt
+++ /dev/null
@@ -1,40 +0,0 @@
-cmake_minimum_required(VERSION 3.5)
-project(test_dobby)
-
-set(PrimaryPath ..)
-
-include(${PrimaryPath}/cmake/Globals.cmake)
-include(${PrimaryPath}/cmake/Macros.cmake)
-
-set(CMAKE_CXX_STANDARD 11)
-set(CMAKE_CXX_STANDARD_REQUIRED ON)
-set(CMAKE_C_STANDARD 11)
-enable_language(ASM)
-
-
-include_directories(
-    ${PrimaryPath}/tests
-    ${PrimaryPath}/source
-)
-
-include_directories(
-  ${PrimaryPath}/source
-  ${PrimaryPath}/source/UserMode
-  ${PrimaryPath}/external
-  ${PrimaryPath}/external/logging
-  ${PrimaryPath}/external/xnucxx
-)
-
-add_subdirectory(${PrimaryPath} dobby.out)
-
-add_executable(tests_instr_relo_x64
-    ${PrimaryPath}/source/InstructionRelocation/x64/X64IPRelativeOpcodeTable.cc
-    ${PrimaryPath}/tests/InstructionRelocation/x64/test_x64_instruction_relocation.cc
-)
-
-add_executable(tests_instr_relo_aarch64
-    ${PrimaryPath}/tests/InstructionRelocation/aarch64/test_aarch64_instruction_relocation.cc
-)
-target_link_libraries(tests_instr_relo_aarch64
-    dobby
-)
\ No newline at end of file
diff --git a/loader/dobby/tests/InstructionRelocation/aarch64/test_aarch64_instruction_relocation.cc b/loader/dobby/tests/InstructionRelocation/aarch64/test_aarch64_instruction_relocation.cc
deleted file mode 100644
index d0f2a9cc..00000000
--- a/loader/dobby/tests/InstructionRelocation/aarch64/test_aarch64_instruction_relocation.cc
+++ /dev/null
@@ -1,62 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-
-#if defined(__WIN32__) || defined(__APPLE__)
-#define xcdecl(s) "_" s
-#else
-#define xcdecl(s) s
-#endif
-
-#define xASM(x) __asm(x)
-
-__attribute__((naked)) void pc_relative_instructions() {
-  xASM("ldr x0, #4");
-  xASM("nop");
-  xASM("nop");
-
-  xASM("nop");
-  xASM("nop");
-  xASM("ldr x0, #-4");
-
-  xASM("adr x0, #4");
-
-  xASM("adrp x0, #0x1000");
-
-  xASM("tbz x0, #8, #4");
-
-  xASM("tbz x0, #27, #-4");
-
-  xASM("cbz x0, #4");
-
-  xASM("cbz x0, #-4");
-
-  xASM("cmp x0, x0");
-  xASM("b.eq #-4");
-}
-
-__attribute__((naked)) void pc_relative_instructions_end() {
-}
-
-#include "InstructionRelocation/arm64/ARM64InstructionRelocation.h"
-
-extern zz::AssemblyCode *GenRelocateCodeAndBranch(void *buffer, int *relocate_size, addr_t from_pc, addr_t to_pc);
-
-extern "C" {
-int _main(int argc, const char **argv);
-}
-
-int _main(int argc, const char **argv) {
-  LOG(1, "pc_relative_instructions: %p", pc_relative_instructions);
-
-  char *relo_buffer = (char *)malloc(0x1000);
-
-  int relo_size = (uint64_t)pc_relative_instructions_end - (uint64_t)pc_relative_instructions;
-  zz::AssemblyCode *code = GenRelocateCodeAndBranch((void *)pc_relative_instructions, &relo_size, 0, 0);
-
-  unsigned char *instruction_bytes = (unsigned char *)code->raw_instruction_start();
-  for (int i = 0; i < code->raw_instruction_size(); i += 1) {
-    printf("%.2x ", instruction_bytes[i]);
-  }
-
-  return 0;
-}
diff --git a/loader/dobby/tests/InstructionRelocation/x64/test_x64_instruction_relocation.cc b/loader/dobby/tests/InstructionRelocation/x64/test_x64_instruction_relocation.cc
deleted file mode 100644
index f57391c0..00000000
--- a/loader/dobby/tests/InstructionRelocation/x64/test_x64_instruction_relocation.cc
+++ /dev/null
@@ -1,133 +0,0 @@
-#define CATCH_CONFIG_MAIN
-
-#include "catch.hpp"
-
-#include <string.h>
-
-#include "InstructionRelocation/x64/X64IPRelativeOpcodeTable.h"
-
-/*
-
-sub_140006C30        48 89 5C 24 08                                   mov     [rsp+arg_0], rbx
-sub_140006C30+5      48 89 74 24 10                                   mov     [rsp+arg_8], rsi
-sub_140006C30+A      57                                               push    rdi
-sub_140006C30+B      48 83 EC 40                                      sub     rsp, 40h
-sub_140006C30+F      48 8B F9                                         mov     rdi, rcx
-sub_140006C30+12     48 8D 99 70 02 00 00                             lea     rbx, [rcx+270h]
-sub_140006C30+19     8B CA                                            mov     ecx, edx
-sub_140006C30+1B     8B F2                                            mov     esi, edx
-sub_140006C30+1D     E8 0E CA FF FF                                   call    sub_140003660
-sub_140006C30+1D
-sub_140006C30+22     48 8B 0F                                         mov     rcx, [rdi]
-sub_140006C30+25     48 8D 15 24 17 07 00                             lea     rdx, aCDvsP4BuildSwG_1      ;
-"C:\\dvs\\p4\\build\\sw\\gcomp\\dev\\src"... sub_140006C30+2C     48 89 5C 24 30                                   mov
-[rsp+48h+var_18], rbx sub_140006C30+31     41 B9 03 00 00 00                                mov     r9d, 3
-sub_140006C30+37     48 89 44 24 28                                   mov     [rsp+48h+var_20], rax
-sub_140006C30+3C     41 B8 F9 00 00 00                                mov     r8d, 0F9h
-sub_140006C30+42     48 8D 05 EF 19 07 00                             lea     rax, aInitiateTransi        ; "Initiate
-transition to %s state for %s" sub_140006C30+49     48 89 44 24 20                                   mov
-[rsp+48h+var_28], rax sub_140006C30+4E     E8 ED D5 00 00                                   call    sub_140014270
-sub_140006C30+4E
-sub_140006C30+53     48 83 BF D0 02 00 00 00                          cmp     qword ptr [rdi+2D0h], 0
-sub_140006C30+5B     74 10                                            jz      short loc_140006C9D
-sub_140006C30+5B
-sub_140006C30+5D     E8 7E CA 00 00                                   call    sub_140013710
-sub_140006C30+5D
-sub_140006C30+62     48 8B 8F D0 02 00 00                             mov     rcx, [rdi+2D0h]
-sub_140006C30+69     48 89 41 48                                      mov     [rcx+48h], rax
-sub_140006C30+69
-sub_140006C30+6D
-sub_140006C30+6D                                                  loc_140006C9D:                          ; CODE XREF:
-sub_140006C30+5B↑j sub_140006C30+6D     8B 97 34 03 00 00                                mov     edx, [rdi+334h]
-sub_140006C30+73     48 8B 4F 08                                      mov     rcx, [rdi+8]
-sub_140006C30+77     89 B7 B0 02 00 00                                mov     [rdi+2B0h], esi
-sub_140006C30+7D     48 8B 5C 24 50                                   mov     rbx, [rsp+48h+arg_0]
-sub_140006C30+82     48 8B 74 24 58                                   mov     rsi, [rsp+48h+arg_8]
-sub_140006C30+87     48 83 C4 40                                      add     rsp, 40h
-sub_140006C30+8B     5F                                               pop     rdi
-sub_140006C30+8C     E9 2F BC FF FF                                   jmp     sub_1400028F0
-
-*/
-
-//------------------------------------------------------------
-//-----------       Created with 010 Editor        -----------
-//------         www.sweetscape.com/010editor/          ------
-//
-// File    : C:\Users\jmpews\Downloads\NvContainer\nvcontainer.exe
-// Address : 24624 (0x6030)
-// Size    : 145 (0x91)
-//------------------------------------------------------------
-unsigned char hexData[145] = {
-    0x48, 0x89, 0x5C, 0x24, 0x08, 0x48, 0x89, 0x74, 0x24, 0x10, 0x57, 0x48, 0x83, 0xEC, 0x40, 0x48, 0x8B, 0xF9, 0x48,
-    0x8D, 0x99, 0x70, 0x02, 0x00, 0x00, 0x8B, 0xCA, 0x8B, 0xF2, 0xE8, 0x0E, 0xCA, 0xFF, 0xFF, 0x48, 0x8B, 0x0F, 0x48,
-    0x8D, 0x15, 0x24, 0x17, 0x07, 0x00, 0x48, 0x89, 0x5C, 0x24, 0x30, 0x41, 0xB9, 0x03, 0x00, 0x00, 0x00, 0x48, 0x89,
-    0x44, 0x24, 0x28, 0x41, 0xB8, 0xF9, 0x00, 0x00, 0x00, 0x48, 0x8D, 0x05, 0xEF, 0x19, 0x07, 0x00, 0x48, 0x89, 0x44,
-    0x24, 0x20, 0xE8, 0xED, 0xD5, 0x00, 0x00, 0x48, 0x83, 0xBF, 0xD0, 0x02, 0x00, 0x00, 0x00, 0x74, 0x10, 0xE8, 0x7E,
-    0xCA, 0x00, 0x00, 0x48, 0x8B, 0x8F, 0xD0, 0x02, 0x00, 0x00, 0x48, 0x89, 0x41, 0x48, 0x8B, 0x97, 0x34, 0x03, 0x00,
-    0x00, 0x48, 0x8B, 0x4F, 0x08, 0x89, 0xB7, 0xB0, 0x02, 0x00, 0x00, 0x48, 0x8B, 0x5C, 0x24, 0x50, 0x48, 0x8B, 0x74,
-    0x24, 0x58, 0x48, 0x83, 0xC4, 0x40, 0x5F, 0xE9, 0x2F, 0xBC, 0xFF, 0xFF};
-
-// clang-format off
-int instrLenArray[] = {
-  5,
-  5,
-  1,
-  4,
-  3,
-  7,
-  2,
-  2,
-  5,
-  3,
-  7,
-  5,
-  6,
-  5,
-  6,
-  7,
-  5,
-  5,
-  8,
-  2,
-  5,
-  7,
-  4,
-  6,
-  4,
-  6,
-  5,
-  5,
-  4,
-  1,
-  5
-};
-// clang-format on
-
-TEST_CASE(">>> InstructionRelocation/x64", "[InstructionRelocation]") {
-  void *TargetFunction = hexData;
-  uintptr_t srcIP = (uintptr_t)TargetFunction;
-  uintptr_t currIP = srcIP;
-  int funcLen = sizeof(hexData);
-  unsigned char opcode1 = 0;
-  InstrMnemonic instr = {0};
-
-  int i = 0;
-  opcode1 = *(byte *)srcIP;
-
-  do {
-    OpcodeDecodeItem *decodeItem = &OpcodeDecodeTable[opcode1];
-    decodeItem->DecodeHandler(&instr, (addr_t)currIP);
-
-    REQUIRE(instr.len == instrLenArray[i]);
-    currIP += instr.len;
-    opcode1 = *(byte *)currIP;
-    if (instr.instr.opcode) {
-      printf("ndx %d: %d\n", i, instr.len);
-      // clear instr
-      memset((void *)&instr, 0, sizeof(InstrMnemonic));
-    }
-    i++;
-  } while (currIP < (srcIP + funcLen));
-
-  printf("InstructionRelocation/x64 Done!");
-}
diff --git a/loader/dobby/tests/catch.hpp b/loader/dobby/tests/catch.hpp
deleted file mode 100644
index 29747ef0..00000000
--- a/loader/dobby/tests/catch.hpp
+++ /dev/null
@@ -1,13017 +0,0 @@
-/*
- *  Catch v2.2.3
- *  Generated: 2018-06-06 23:11:57.601416
- *  ----------------------------------------------------------
- *  This file has been merged from multiple headers. Please don't edit it directly
- *  Copyright (c) 2018 Two Blue Cubes Ltd. All rights reserved.
- *
- *  Distributed under the Boost Software License, Version 1.0. (See accompanying
- *  file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- */
-#ifndef TWOBLUECUBES_SINGLE_INCLUDE_CATCH_HPP_INCLUDED
-#define TWOBLUECUBES_SINGLE_INCLUDE_CATCH_HPP_INCLUDED
-// start catch.hpp
-
-#define CATCH_VERSION_MAJOR 2
-#define CATCH_VERSION_MINOR 2
-#define CATCH_VERSION_PATCH 3
-
-#ifdef __clang__
-#pragma clang system_header
-#elif defined __GNUC__
-#pragma GCC system_header
-#endif
-
-// start catch_suppress_warnings.h
-
-#ifdef __clang__
-#ifdef __ICC // icpc defines the __clang__ macro
-#pragma warning(push)
-#pragma warning(disable : 161 1682)
-#else // __ICC
-#pragma clang diagnostic ignored "-Wunused-variable"
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wpadded"
-#pragma clang diagnostic ignored "-Wswitch-enum"
-#pragma clang diagnostic ignored "-Wcovered-switch-default"
-#endif
-#elif defined __GNUC__
-#pragma GCC diagnostic ignored "-Wparentheses"
-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Wunused-variable"
-#pragma GCC diagnostic ignored "-Wpadded"
-#endif
-// end catch_suppress_warnings.h
-#if defined(CATCH_CONFIG_MAIN) || defined(CATCH_CONFIG_RUNNER)
-#define CATCH_IMPL
-#define CATCH_CONFIG_ALL_PARTS
-#endif
-
-// In the impl file, we want to have access to all parts of the headers
-// Can also be used to sanely support PCHs
-#if defined(CATCH_CONFIG_ALL_PARTS)
-#define CATCH_CONFIG_EXTERNAL_INTERFACES
-#if defined(CATCH_CONFIG_DISABLE_MATCHERS)
-#undef CATCH_CONFIG_DISABLE_MATCHERS
-#endif
-#define CATCH_CONFIG_ENABLE_CHRONO_STRINGMAKER
-#endif
-
-#if !defined(CATCH_CONFIG_IMPL_ONLY)
-// start catch_platform.h
-
-#ifdef __APPLE__
-#include <TargetConditionals.h>
-#if TARGET_OS_OSX == 1
-#define CATCH_PLATFORM_MAC
-#elif TARGET_OS_IPHONE == 1
-#define CATCH_PLATFORM_IPHONE
-#endif
-
-#elif defined(linux) || defined(__linux) || defined(__linux__)
-#define CATCH_PLATFORM_LINUX
-
-#elif defined(WIN32) || defined(__WIN32__) || defined(_WIN32) || defined(_MSC_VER) || defined(__MINGW32__)
-#define CATCH_PLATFORM_WINDOWS
-#endif
-
-// end catch_platform.h
-
-#ifdef CATCH_IMPL
-#ifndef CLARA_CONFIG_MAIN
-#define CLARA_CONFIG_MAIN_NOT_DEFINED
-#define CLARA_CONFIG_MAIN
-#endif
-#endif
-
-// start catch_user_interfaces.h
-
-namespace Catch {
-unsigned int rngSeed();
-}
-
-// end catch_user_interfaces.h
-// start catch_tag_alias_autoregistrar.h
-
-// start catch_common.h
-
-// start catch_compiler_capabilities.h
-
-// Detect a number of compiler features - by compiler
-// The following features are defined:
-//
-// CATCH_CONFIG_COUNTER : is the __COUNTER__ macro supported?
-// CATCH_CONFIG_WINDOWS_SEH : is Windows SEH supported?
-// CATCH_CONFIG_POSIX_SIGNALS : are POSIX signals supported?
-// ****************
-// Note to maintainers: if new toggles are added please document them
-// in configuration.md, too
-// ****************
-
-// In general each macro has a _NO_<feature name> form
-// (e.g. CATCH_CONFIG_NO_POSIX_SIGNALS) which disables the feature.
-// Many features, at point of detection, define an _INTERNAL_ macro, so they
-// can be combined, en-mass, with the _NO_ forms later.
-
-#ifdef __cplusplus
-
-#if __cplusplus >= 201402L
-#define CATCH_CPP14_OR_GREATER
-#endif
-
-#if __cplusplus >= 201703L
-#define CATCH_CPP17_OR_GREATER
-#endif
-
-#endif
-
-#if defined(CATCH_CPP17_OR_GREATER)
-#define CATCH_INTERNAL_CONFIG_CPP17_UNCAUGHT_EXCEPTIONS
-#endif
-
-#ifdef __clang__
-
-#define CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS                                                                       \
-  _Pragma("clang diagnostic push") _Pragma("clang diagnostic ignored \"-Wexit-time-destructors\"")                     \
-      _Pragma("clang diagnostic ignored \"-Wglobal-constructors\"")
-#define CATCH_INTERNAL_UNSUPPRESS_GLOBALS_WARNINGS _Pragma("clang diagnostic pop")
-
-#define CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS                                                                   \
-  _Pragma("clang diagnostic push") _Pragma("clang diagnostic ignored \"-Wparentheses\"")
-#define CATCH_INTERNAL_UNSUPPRESS_PARENTHESES_WARNINGS _Pragma("clang diagnostic pop")
-
-#endif // __clang__
-
-////////////////////////////////////////////////////////////////////////////////
-// Assume that non-Windows platforms support posix signals by default
-#if !defined(CATCH_PLATFORM_WINDOWS)
-#define CATCH_INTERNAL_CONFIG_POSIX_SIGNALS
-#endif
-
-////////////////////////////////////////////////////////////////////////////////
-// We know some environments not to support full POSIX signals
-#if defined(__CYGWIN__) || defined(__QNX__) || defined(__EMSCRIPTEN__) || defined(__DJGPP__)
-#define CATCH_INTERNAL_CONFIG_NO_POSIX_SIGNALS
-#endif
-
-#ifdef __OS400__
-#define CATCH_INTERNAL_CONFIG_NO_POSIX_SIGNALS
-#define CATCH_CONFIG_COLOUR_NONE
-#endif
-
-////////////////////////////////////////////////////////////////////////////////
-// Android somehow still does not support std::to_string
-#if defined(__ANDROID__)
-#define CATCH_INTERNAL_CONFIG_NO_CPP11_TO_STRING
-#endif
-
-////////////////////////////////////////////////////////////////////////////////
-// Not all Windows environments support SEH properly
-#if defined(__MINGW32__)
-#define CATCH_INTERNAL_CONFIG_NO_WINDOWS_SEH
-#endif
-
-////////////////////////////////////////////////////////////////////////////////
-// Cygwin
-#ifdef __CYGWIN__
-
-// Required for some versions of Cygwin to declare gettimeofday
-// see: http://stackoverflow.com/questions/36901803/gettimeofday-not-declared-in-this-scope-cygwin
-#define _BSD_SOURCE
-
-#endif // __CYGWIN__
-
-////////////////////////////////////////////////////////////////////////////////
-// Visual C++
-#ifdef _MSC_VER
-
-#if _MSC_VER >= 1900 // Visual Studio 2015 or newer
-#define CATCH_INTERNAL_CONFIG_CPP17_UNCAUGHT_EXCEPTIONS
-#endif
-
-// Universal Windows platform does not support SEH
-// Or console colours (or console at all...)
-#if defined(WINAPI_FAMILY) && (WINAPI_FAMILY == WINAPI_FAMILY_APP)
-#define CATCH_CONFIG_COLOUR_NONE
-#else
-#define CATCH_INTERNAL_CONFIG_WINDOWS_SEH
-#endif
-
-#endif // _MSC_VER
-
-////////////////////////////////////////////////////////////////////////////////
-
-// DJGPP
-#ifdef __DJGPP__
-#define CATCH_INTERNAL_CONFIG_NO_WCHAR
-#endif // __DJGPP__
-
-////////////////////////////////////////////////////////////////////////////////
-
-// Use of __COUNTER__ is suppressed during code analysis in
-// CLion/AppCode 2017.2.x and former, because __COUNTER__ is not properly
-// handled by it.
-// Otherwise all supported compilers support COUNTER macro,
-// but user still might want to turn it off
-#if (!defined(__JETBRAINS_IDE__) || __JETBRAINS_IDE__ >= 20170300L)
-#define CATCH_INTERNAL_CONFIG_COUNTER
-#endif
-
-#if defined(CATCH_INTERNAL_CONFIG_COUNTER) && !defined(CATCH_CONFIG_NO_COUNTER) && !defined(CATCH_CONFIG_COUNTER)
-#define CATCH_CONFIG_COUNTER
-#endif
-#if defined(CATCH_INTERNAL_CONFIG_WINDOWS_SEH) && !defined(CATCH_CONFIG_NO_WINDOWS_SEH) &&                             \
-    !defined(CATCH_CONFIG_WINDOWS_SEH) && !defined(CATCH_INTERNAL_CONFIG_NO_WINDOWS_SEH)
-#define CATCH_CONFIG_WINDOWS_SEH
-#endif
-// This is set by default, because we assume that unix compilers are posix-signal-compatible by default.
-#if defined(CATCH_INTERNAL_CONFIG_POSIX_SIGNALS) && !defined(CATCH_INTERNAL_CONFIG_NO_POSIX_SIGNALS) &&                \
-    !defined(CATCH_CONFIG_NO_POSIX_SIGNALS) && !defined(CATCH_CONFIG_POSIX_SIGNALS)
-#define CATCH_CONFIG_POSIX_SIGNALS
-#endif
-// This is set by default, because we assume that compilers with no wchar_t support are just rare exceptions.
-#if !defined(CATCH_INTERNAL_CONFIG_NO_WCHAR) && !defined(CATCH_CONFIG_NO_WCHAR) && !defined(CATCH_CONFIG_WCHAR)
-#define CATCH_CONFIG_WCHAR
-#endif
-
-#if !defined(CATCH_INTERNAL_CONFIG_NO_CPP11_TO_STRING) && !defined(CATCH_CONFIG_NO_CPP11_TO_STRING) &&                 \
-    !defined(CATCH_CONFIG_CPP11_TO_STRING)
-#define CATCH_CONFIG_CPP11_TO_STRING
-#endif
-
-#if defined(CATCH_INTERNAL_CONFIG_CPP17_UNCAUGHT_EXCEPTIONS) && !defined(CATCH_CONFIG_NO_CPP17_UNCAUGHT_EXCEPTIONS) && \
-    !defined(CATCH_CONFIG_CPP17_UNCAUGHT_EXCEPTIONS)
-#define CATCH_CONFIG_CPP17_UNCAUGHT_EXCEPTIONS
-#endif
-
-#if !defined(CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS)
-#define CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS
-#define CATCH_INTERNAL_UNSUPPRESS_PARENTHESES_WARNINGS
-#endif
-#if !defined(CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS)
-#define CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS
-#define CATCH_INTERNAL_UNSUPPRESS_GLOBALS_WARNINGS
-#endif
-
-// end catch_compiler_capabilities.h
-#define INTERNAL_CATCH_UNIQUE_NAME_LINE2(name, line) name##line
-#define INTERNAL_CATCH_UNIQUE_NAME_LINE(name, line) INTERNAL_CATCH_UNIQUE_NAME_LINE2(name, line)
-#ifdef CATCH_CONFIG_COUNTER
-#define INTERNAL_CATCH_UNIQUE_NAME(name) INTERNAL_CATCH_UNIQUE_NAME_LINE(name, __COUNTER__)
-#else
-#define INTERNAL_CATCH_UNIQUE_NAME(name) INTERNAL_CATCH_UNIQUE_NAME_LINE(name, __LINE__)
-#endif
-
-#include <cstdint>
-#include <iosfwd>
-#include <string>
-
-namespace Catch {
-
-struct CaseSensitive {
-  enum Choice { Yes, No };
-};
-
-class NonCopyable {
-  NonCopyable(NonCopyable const &) = delete;
-  NonCopyable(NonCopyable &&)      = delete;
-  NonCopyable &operator=(NonCopyable const &) = delete;
-  NonCopyable &operator=(NonCopyable &&) = delete;
-
-protected:
-  NonCopyable();
-  virtual ~NonCopyable();
-};
-
-struct SourceLineInfo {
-
-  SourceLineInfo() = delete;
-  SourceLineInfo(char const *_file, std::size_t _line) noexcept : file(_file), line(_line) {
-  }
-
-  SourceLineInfo(SourceLineInfo const &other) = default;
-  SourceLineInfo(SourceLineInfo &&)           = default;
-  SourceLineInfo &operator=(SourceLineInfo const &) = default;
-  SourceLineInfo &operator=(SourceLineInfo &&) = default;
-
-  bool empty() const noexcept;
-  bool operator==(SourceLineInfo const &other) const noexcept;
-  bool operator<(SourceLineInfo const &other) const noexcept;
-
-  char const *file;
-  std::size_t line;
-};
-
-std::ostream &operator<<(std::ostream &os, SourceLineInfo const &info);
-
-// Use this in variadic streaming macros to allow
-//    >> +StreamEndStop
-// as well as
-//    >> stuff +StreamEndStop
-struct StreamEndStop {
-  std::string operator+() const;
-};
-template <typename T> T const &operator+(T const &value, StreamEndStop) {
-  return value;
-}
-} // namespace Catch
-
-#define CATCH_INTERNAL_LINEINFO ::Catch::SourceLineInfo(__FILE__, static_cast<std::size_t>(__LINE__))
-
-// end catch_common.h
-namespace Catch {
-
-struct RegistrarForTagAliases {
-  RegistrarForTagAliases(char const *alias, char const *tag, SourceLineInfo const &lineInfo);
-};
-
-} // end namespace Catch
-
-#define CATCH_REGISTER_TAG_ALIAS(alias, spec)                                                                          \
-  CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS                                                                             \
-  namespace {                                                                                                          \
-  Catch::RegistrarForTagAliases INTERNAL_CATCH_UNIQUE_NAME(AutoRegisterTagAlias)(alias, spec,                          \
-                                                                                 CATCH_INTERNAL_LINEINFO);             \
-  }                                                                                                                    \
-  CATCH_INTERNAL_UNSUPPRESS_GLOBALS_WARNINGS
-
-// end catch_tag_alias_autoregistrar.h
-// start catch_test_registry.h
-
-// start catch_interfaces_testcase.h
-
-#include <memory>
-#include <vector>
-
-namespace Catch {
-
-class TestSpec;
-
-struct ITestInvoker {
-  virtual void invoke() const = 0;
-  virtual ~ITestInvoker();
-};
-
-using ITestCasePtr = std::shared_ptr<ITestInvoker>;
-
-class TestCase;
-struct IConfig;
-
-struct ITestCaseRegistry {
-  virtual ~ITestCaseRegistry();
-  virtual std::vector<TestCase> const &getAllTests() const                            = 0;
-  virtual std::vector<TestCase> const &getAllTestsSorted(IConfig const &config) const = 0;
-};
-
-bool matchTest(TestCase const &testCase, TestSpec const &testSpec, IConfig const &config);
-std::vector<TestCase> filterTests(std::vector<TestCase> const &testCases, TestSpec const &testSpec,
-                                  IConfig const &config);
-std::vector<TestCase> const &getAllTestCasesSorted(IConfig const &config);
-
-} // namespace Catch
-
-// end catch_interfaces_testcase.h
-// start catch_stringref.h
-
-#include <cstddef>
-#include <iosfwd>
-#include <string>
-
-namespace Catch {
-
-class StringData;
-
-/// A non-owning string class (similar to the forthcoming std::string_view)
-/// Note that, because a StringRef may be a substring of another string,
-/// it may not be null terminated. c_str() must return a null terminated
-/// string, however, and so the StringRef will internally take ownership
-/// (taking a copy), if necessary. In theory this ownership is not externally
-/// visible - but it does mean (substring) StringRefs should not be shared between
-/// threads.
-class StringRef {
-public:
-  using size_type = std::size_t;
-
-private:
-  friend struct StringRefTestAccess;
-
-  char const *m_start;
-  size_type m_size;
-
-  char *m_data = nullptr;
-
-  void takeOwnership();
-
-  static constexpr char const *const s_empty = "";
-
-public: // construction/ assignment
-  StringRef() noexcept : StringRef(s_empty, 0) {
-  }
-
-  StringRef(StringRef const &other) noexcept : m_start(other.m_start), m_size(other.m_size) {
-  }
-
-  StringRef(StringRef &&other) noexcept : m_start(other.m_start), m_size(other.m_size), m_data(other.m_data) {
-    other.m_data = nullptr;
-  }
-
-  StringRef(char const *rawChars) noexcept;
-
-  StringRef(char const *rawChars, size_type size) noexcept : m_start(rawChars), m_size(size) {
-  }
-
-  StringRef(std::string const &stdString) noexcept : m_start(stdString.c_str()), m_size(stdString.size()) {
-  }
-
-  ~StringRef() noexcept {
-    delete[] m_data;
-  }
-
-  auto operator=(StringRef const &other) noexcept -> StringRef & {
-    delete[] m_data;
-    m_data  = nullptr;
-    m_start = other.m_start;
-    m_size  = other.m_size;
-    return *this;
-  }
-
-  operator std::string() const;
-
-  void swap(StringRef &other) noexcept;
-
-public: // operators
-  auto operator==(StringRef const &other) const noexcept -> bool;
-  auto operator!=(StringRef const &other) const noexcept -> bool;
-
-  auto operator[](size_type index) const noexcept -> char;
-
-public: // named queries
-  auto empty() const noexcept -> bool {
-    return m_size == 0;
-  }
-  auto size() const noexcept -> size_type {
-    return m_size;
-  }
-
-  auto numberOfCharacters() const noexcept -> size_type;
-  auto c_str() const -> char const *;
-
-public: // substrings and searches
-  auto substr(size_type start, size_type size) const noexcept -> StringRef;
-
-  // Returns the current start pointer.
-  // Note that the pointer can change when if the StringRef is a substring
-  auto currentData() const noexcept -> char const *;
-
-private: // ownership queries - may not be consistent between calls
-  auto isOwned() const noexcept -> bool;
-  auto isSubstring() const noexcept -> bool;
-};
-
-auto operator+(StringRef const &lhs, StringRef const &rhs) -> std::string;
-auto operator+(StringRef const &lhs, char const *rhs) -> std::string;
-auto operator+(char const *lhs, StringRef const &rhs) -> std::string;
-
-auto operator+=(std::string &lhs, StringRef const &sr) -> std::string &;
-auto operator<<(std::ostream &os, StringRef const &sr) -> std::ostream &;
-
-inline auto operator"" _sr(char const *rawChars, std::size_t size) noexcept -> StringRef {
-  return StringRef(rawChars, size);
-}
-
-} // namespace Catch
-
-// end catch_stringref.h
-namespace Catch {
-
-template <typename C> class TestInvokerAsMethod : public ITestInvoker {
-  void (C::*m_testAsMethod)();
-
-public:
-  TestInvokerAsMethod(void (C::*testAsMethod)()) noexcept : m_testAsMethod(testAsMethod) {
-  }
-
-  void invoke() const override {
-    C obj;
-    (obj.*m_testAsMethod)();
-  }
-};
-
-auto makeTestInvoker(void (*testAsFunction)()) noexcept -> ITestInvoker *;
-
-template <typename C> auto makeTestInvoker(void (C::*testAsMethod)()) noexcept -> ITestInvoker * {
-  return new (std::nothrow) TestInvokerAsMethod<C>(testAsMethod);
-}
-
-struct NameAndTags {
-  NameAndTags(StringRef const &name_ = StringRef(), StringRef const &tags_ = StringRef()) noexcept;
-  StringRef name;
-  StringRef tags;
-};
-
-struct AutoReg : NonCopyable {
-  AutoReg(ITestInvoker *invoker, SourceLineInfo const &lineInfo, StringRef const &classOrMethod,
-          NameAndTags const &nameAndTags) noexcept;
-  ~AutoReg();
-};
-
-} // end namespace Catch
-
-#define INTERNAL_CATCH_EXPAND1(param) INTERNAL_CATCH_EXPAND2(param)
-#define INTERNAL_CATCH_EXPAND2(...) INTERNAL_CATCH_NO##__VA_ARGS__
-#define INTERNAL_CATCH_DEF(...) INTERNAL_CATCH_DEF __VA_ARGS__
-#define INTERNAL_CATCH_NOINTERNAL_CATCH_DEF
-
-#if defined(CATCH_CONFIG_DISABLE)
-#define INTERNAL_CATCH_TESTCASE_NO_REGISTRATION(TestName, ...) static void TestName()
-#define INTERNAL_CATCH_TESTCASE_METHOD_NO_REGISTRATION(TestName, ClassName, ...)                                       \
-  namespace {                                                                                                          \
-  struct TestName : INTERNAL_CATCH_EXPAND1(INTERNAL_CATCH_DEF ClassName) {                                             \
-    void test();                                                                                                       \
-  };                                                                                                                   \
-  }                                                                                                                    \
-  void TestName::test()
-
-#endif
-
-///////////////////////////////////////////////////////////////////////////////
-#define INTERNAL_CATCH_TESTCASE2(TestName, ...)                                                                        \
-  static void TestName();                                                                                              \
-  CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS                                                                             \
-  namespace {                                                                                                          \
-  Catch::AutoReg INTERNAL_CATCH_UNIQUE_NAME(autoRegistrar)(Catch::makeTestInvoker(&TestName), CATCH_INTERNAL_LINEINFO, \
-                                                           "", Catch::NameAndTags{__VA_ARGS__});                       \
-  } /* NOLINT */                                                                                                       \
-  CATCH_INTERNAL_UNSUPPRESS_GLOBALS_WARNINGS                                                                           \
-  static void TestName()
-#define INTERNAL_CATCH_TESTCASE(...)                                                                                   \
-  INTERNAL_CATCH_TESTCASE2(INTERNAL_CATCH_UNIQUE_NAME(____C_A_T_C_H____T_E_S_T____), __VA_ARGS__)
-
-///////////////////////////////////////////////////////////////////////////////
-#define INTERNAL_CATCH_METHOD_AS_TEST_CASE(QualifiedMethod, ...)                                                       \
-  CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS                                                                             \
-  namespace {                                                                                                          \
-  Catch::AutoReg INTERNAL_CATCH_UNIQUE_NAME(autoRegistrar)(Catch::makeTestInvoker(&QualifiedMethod),                   \
-                                                           CATCH_INTERNAL_LINEINFO, "&" #QualifiedMethod,              \
-                                                           Catch::NameAndTags{__VA_ARGS__});                           \
-  } /* NOLINT */                                                                                                       \
-  CATCH_INTERNAL_UNSUPPRESS_GLOBALS_WARNINGS
-
-///////////////////////////////////////////////////////////////////////////////
-#define INTERNAL_CATCH_TEST_CASE_METHOD2(TestName, ClassName, ...)                                                     \
-  CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS                                                                             \
-  namespace {                                                                                                          \
-  struct TestName : INTERNAL_CATCH_EXPAND1(INTERNAL_CATCH_DEF ClassName) {                                             \
-    void test();                                                                                                       \
-  };                                                                                                                   \
-  Catch::AutoReg INTERNAL_CATCH_UNIQUE_NAME(autoRegistrar)(Catch::makeTestInvoker(&TestName::test),                    \
-                                                           CATCH_INTERNAL_LINEINFO, #ClassName,                        \
-                                                           Catch::NameAndTags{__VA_ARGS__}); /* NOLINT */              \
-  }                                                                                                                    \
-  CATCH_INTERNAL_UNSUPPRESS_GLOBALS_WARNINGS                                                                           \
-  void TestName::test()
-#define INTERNAL_CATCH_TEST_CASE_METHOD(ClassName, ...)                                                                \
-  INTERNAL_CATCH_TEST_CASE_METHOD2(INTERNAL_CATCH_UNIQUE_NAME(____C_A_T_C_H____T_E_S_T____), ClassName, __VA_ARGS__)
-
-///////////////////////////////////////////////////////////////////////////////
-#define INTERNAL_CATCH_REGISTER_TESTCASE(Function, ...)                                                                \
-  CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS                                                                             \
-  Catch::AutoReg INTERNAL_CATCH_UNIQUE_NAME(autoRegistrar)(Catch::makeTestInvoker(Function), CATCH_INTERNAL_LINEINFO,  \
-                                                           "", Catch::NameAndTags{__VA_ARGS__}); /* NOLINT */          \
-  CATCH_INTERNAL_UNSUPPRESS_GLOBALS_WARNINGS
-
-// end catch_test_registry.h
-// start catch_capture.hpp
-
-// start catch_assertionhandler.h
-
-// start catch_assertioninfo.h
-
-// start catch_result_type.h
-
-namespace Catch {
-
-// ResultWas::OfType enum
-struct ResultWas {
-  enum OfType {
-    Unknown = -1,
-    Ok      = 0,
-    Info    = 1,
-    Warning = 2,
-
-    FailureBit = 0x10,
-
-    ExpressionFailed = FailureBit | 1,
-    ExplicitFailure  = FailureBit | 2,
-
-    Exception = 0x100 | FailureBit,
-
-    ThrewException      = Exception | 1,
-    DidntThrowException = Exception | 2,
-
-    FatalErrorCondition = 0x200 | FailureBit
-
-  };
-};
-
-bool isOk(ResultWas::OfType resultType);
-bool isJustInfo(int flags);
-
-// ResultDisposition::Flags enum
-struct ResultDisposition {
-  enum Flags {
-    Normal = 0x01,
-
-    ContinueOnFailure = 0x02, // Failures fail test, but execution continues
-    FalseTest         = 0x04, // Prefix expression with !
-    SuppressFail      = 0x08  // Failures are reported but do not fail the test
-  };
-};
-
-ResultDisposition::Flags operator|(ResultDisposition::Flags lhs, ResultDisposition::Flags rhs);
-
-bool shouldContinueOnFailure(int flags);
-inline bool isFalseTest(int flags) {
-  return (flags & ResultDisposition::FalseTest) != 0;
-}
-bool shouldSuppressFailure(int flags);
-
-} // end namespace Catch
-
-// end catch_result_type.h
-namespace Catch {
-
-struct AssertionInfo {
-  StringRef macroName;
-  SourceLineInfo lineInfo;
-  StringRef capturedExpression;
-  ResultDisposition::Flags resultDisposition;
-
-  // We want to delete this constructor but a compiler bug in 4.8 means
-  // the struct is then treated as non-aggregate
-  //AssertionInfo() = delete;
-};
-
-} // end namespace Catch
-
-// end catch_assertioninfo.h
-// start catch_decomposer.h
-
-// start catch_tostring.h
-
-#include <cstddef>
-#include <string>
-#include <type_traits>
-#include <vector>
-// start catch_stream.h
-
-#include <cstddef>
-#include <iosfwd>
-#include <ostream>
-
-namespace Catch {
-
-std::ostream &cout();
-std::ostream &cerr();
-std::ostream &clog();
-
-class StringRef;
-
-struct IStream {
-  virtual ~IStream();
-  virtual std::ostream &stream() const = 0;
-};
-
-auto makeStream(StringRef const &filename) -> IStream const *;
-
-class ReusableStringStream {
-  std::size_t m_index;
-  std::ostream *m_oss;
-
-public:
-  ReusableStringStream();
-  ~ReusableStringStream();
-
-  auto str() const -> std::string;
-
-  template <typename T> auto operator<<(T const &value) -> ReusableStringStream & {
-    *m_oss << value;
-    return *this;
-  }
-  auto get() -> std::ostream & {
-    return *m_oss;
-  }
-
-  static void cleanup();
-};
-} // namespace Catch
-
-// end catch_stream.h
-
-#ifdef __OBJC__
-// start catch_objc_arc.hpp
-
-#import <Foundation/Foundation.h>
-
-#ifdef __has_feature
-#define CATCH_ARC_ENABLED __has_feature(objc_arc)
-#else
-#define CATCH_ARC_ENABLED 0
-#endif
-
-void arcSafeRelease(NSObject *obj);
-id performOptionalSelector(id obj, SEL sel);
-
-#if !CATCH_ARC_ENABLED
-inline void arcSafeRelease(NSObject *obj) {
-  [obj release];
-}
-inline id performOptionalSelector(id obj, SEL sel) {
-  if ([obj respondsToSelector:sel])
-    return [obj performSelector:sel];
-  return nil;
-}
-#define CATCH_UNSAFE_UNRETAINED
-#define CATCH_ARC_STRONG
-#else
-inline void arcSafeRelease(NSObject *) {
-}
-inline id performOptionalSelector(id obj, SEL sel) {
-#ifdef __clang__
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Warc-performSelector-leaks"
-#endif
-  if ([obj respondsToSelector:sel])
-    return [obj performSelector:sel];
-#ifdef __clang__
-#pragma clang diagnostic pop
-#endif
-  return nil;
-}
-#define CATCH_UNSAFE_UNRETAINED __unsafe_unretained
-#define CATCH_ARC_STRONG __strong
-#endif
-
-// end catch_objc_arc.hpp
-#endif
-
-#ifdef _MSC_VER
-#pragma warning(push)
-#pragma warning(                                                                                                       \
-    disable : 4180) // We attempt to stream a function (address) by const&, which MSVC complains about but is harmless
-#endif
-
-// We need a dummy global operator<< so we can bring it into Catch namespace later
-struct Catch_global_namespace_dummy {};
-std::ostream &operator<<(std::ostream &, Catch_global_namespace_dummy);
-
-namespace Catch {
-// Bring in operator<< from global namespace into Catch namespace
-using ::operator<<;
-
-namespace Detail {
-
-extern const std::string unprintableString;
-
-std::string rawMemoryToString(const void *object, std::size_t size);
-
-template <typename T> std::string rawMemoryToString(const T &object) {
-  return rawMemoryToString(&object, sizeof(object));
-}
-
-template <typename T> class IsStreamInsertable {
-  template <typename SS, typename TT>
-  static auto test(int) -> decltype(std::declval<SS &>() << std::declval<TT>(), std::true_type());
-
-  template <typename, typename> static auto test(...) -> std::false_type;
-
-public:
-  static const bool value = decltype(test<std::ostream, const T &>(0))::value;
-};
-
-template <typename E> std::string convertUnknownEnumToString(E e);
-
-template <typename T>
-typename std::enable_if<!std::is_enum<T>::value && !std::is_base_of<std::exception, T>::value, std::string>::type
-convertUnstreamable(T const &) {
-  return Detail::unprintableString;
-}
-template <typename T>
-typename std::enable_if<!std::is_enum<T>::value && std::is_base_of<std::exception, T>::value, std::string>::type
-convertUnstreamable(T const &ex) {
-  return ex.what();
-}
-
-template <typename T>
-typename std::enable_if<std::is_enum<T>::value, std::string>::type convertUnstreamable(T const &value) {
-  return convertUnknownEnumToString(value);
-}
-
-#if defined(_MANAGED)
-//! Convert a CLR string to a utf8 std::string
-template <typename T> std::string clrReferenceToString(T ^ ref) {
-  if (ref == nullptr)
-    return std::string("null");
-  auto bytes                   = System::Text::Encoding::UTF8->GetBytes(ref->ToString());
-  cli::pin_ptr<System::Byte> p = &bytes[0];
-  return std::string(reinterpret_cast<char const *>(p), bytes->Length);
-}
-#endif
-
-} // namespace Detail
-
-// If we decide for C++14, change these to enable_if_ts
-template <typename T, typename = void> struct StringMaker {
-  template <typename Fake = T>
-  static typename std::enable_if<::Catch::Detail::IsStreamInsertable<Fake>::value, std::string>::type
-  convert(const Fake &value) {
-    ReusableStringStream rss;
-    // NB: call using the function-like syntax to avoid ambiguity with
-    // user-defined templated operator<< under clang.
-    rss.operator<<(value);
-    return rss.str();
-  }
-
-  template <typename Fake = T>
-  static typename std::enable_if<!::Catch::Detail::IsStreamInsertable<Fake>::value, std::string>::type
-  convert(const Fake &value) {
-#if !defined(CATCH_CONFIG_FALLBACK_STRINGIFIER)
-    return Detail::convertUnstreamable(value);
-#else
-    return CATCH_CONFIG_FALLBACK_STRINGIFIER(value);
-#endif
-  }
-};
-
-namespace Detail {
-
-// This function dispatches all stringification requests inside of Catch.
-// Should be preferably called fully qualified, like ::Catch::Detail::stringify
-template <typename T> std::string stringify(const T &e) {
-  return ::Catch::StringMaker<typename std::remove_cv<typename std::remove_reference<T>::type>::type>::convert(e);
-}
-
-template <typename E> std::string convertUnknownEnumToString(E e) {
-  return ::Catch::Detail::stringify(static_cast<typename std::underlying_type<E>::type>(e));
-}
-
-#if defined(_MANAGED)
-template <typename T> std::string stringify(T ^ e) {
-  return ::Catch::StringMaker<T ^>::convert(e);
-}
-#endif
-
-} // namespace Detail
-
-// Some predefined specializations
-
-template <> struct StringMaker<std::string> { static std::string convert(const std::string &str); };
-#ifdef CATCH_CONFIG_WCHAR
-template <> struct StringMaker<std::wstring> { static std::string convert(const std::wstring &wstr); };
-#endif
-
-template <> struct StringMaker<char const *> { static std::string convert(char const *str); };
-template <> struct StringMaker<char *> { static std::string convert(char *str); };
-
-#ifdef CATCH_CONFIG_WCHAR
-template <> struct StringMaker<wchar_t const *> { static std::string convert(wchar_t const *str); };
-template <> struct StringMaker<wchar_t *> { static std::string convert(wchar_t *str); };
-#endif
-
-// TBD: Should we use `strnlen` to ensure that we don't go out of the buffer,
-//      while keeping string semantics?
-template <int SZ> struct StringMaker<char[SZ]> {
-  static std::string convert(char const *str) {
-    return ::Catch::Detail::stringify(std::string{str});
-  }
-};
-template <int SZ> struct StringMaker<signed char[SZ]> {
-  static std::string convert(signed char const *str) {
-    return ::Catch::Detail::stringify(std::string{reinterpret_cast<char const *>(str)});
-  }
-};
-template <int SZ> struct StringMaker<unsigned char[SZ]> {
-  static std::string convert(unsigned char const *str) {
-    return ::Catch::Detail::stringify(std::string{reinterpret_cast<char const *>(str)});
-  }
-};
-
-template <> struct StringMaker<int> { static std::string convert(int value); };
-template <> struct StringMaker<long> { static std::string convert(long value); };
-template <> struct StringMaker<long long> { static std::string convert(long long value); };
-template <> struct StringMaker<unsigned int> { static std::string convert(unsigned int value); };
-template <> struct StringMaker<unsigned long> { static std::string convert(unsigned long value); };
-template <> struct StringMaker<unsigned long long> { static std::string convert(unsigned long long value); };
-
-template <> struct StringMaker<bool> { static std::string convert(bool b); };
-
-template <> struct StringMaker<char> { static std::string convert(char c); };
-template <> struct StringMaker<signed char> { static std::string convert(signed char c); };
-template <> struct StringMaker<unsigned char> { static std::string convert(unsigned char c); };
-
-template <> struct StringMaker<std::nullptr_t> { static std::string convert(std::nullptr_t); };
-
-template <> struct StringMaker<float> { static std::string convert(float value); };
-template <> struct StringMaker<double> { static std::string convert(double value); };
-
-template <typename T> struct StringMaker<T *> {
-  template <typename U> static std::string convert(U *p) {
-    if (p) {
-      return ::Catch::Detail::rawMemoryToString(p);
-    } else {
-      return "nullptr";
-    }
-  }
-};
-
-template <typename R, typename C> struct StringMaker<R C::*> {
-  static std::string convert(R C::*p) {
-    if (p) {
-      return ::Catch::Detail::rawMemoryToString(p);
-    } else {
-      return "nullptr";
-    }
-  }
-};
-
-#if defined(_MANAGED)
-template <typename T> struct StringMaker<T ^> {
-  static std::string convert(T ^ ref) {
-    return ::Catch::Detail::clrReferenceToString(ref);
-  }
-};
-#endif
-
-namespace Detail {
-template <typename InputIterator> std::string rangeToString(InputIterator first, InputIterator last) {
-  ReusableStringStream rss;
-  rss << "{ ";
-  if (first != last) {
-    rss << ::Catch::Detail::stringify(*first);
-    for (++first; first != last; ++first)
-      rss << ", " << ::Catch::Detail::stringify(*first);
-  }
-  rss << " }";
-  return rss.str();
-}
-} // namespace Detail
-
-#ifdef __OBJC__
-template <> struct StringMaker<NSString *> {
-  static std::string convert(NSString *nsstring) {
-    if (!nsstring)
-      return "nil";
-    return std::string("@") + [nsstring UTF8String];
-  }
-};
-template <> struct StringMaker<NSObject *> {
-  static std::string convert(NSObject *nsObject) {
-    return ::Catch::Detail::stringify([nsObject description]);
-  }
-};
-namespace Detail {
-inline std::string stringify(NSString *nsstring) {
-  return StringMaker<NSString *>::convert(nsstring);
-}
-
-} // namespace Detail
-#endif // __OBJC__
-
-} // namespace Catch
-
-//////////////////////////////////////////////////////
-// Separate std-lib types stringification, so it can be selectively enabled
-// This means that we do not bring in
-
-#if defined(CATCH_CONFIG_ENABLE_ALL_STRINGMAKERS)
-#define CATCH_CONFIG_ENABLE_PAIR_STRINGMAKER
-#define CATCH_CONFIG_ENABLE_TUPLE_STRINGMAKER
-#define CATCH_CONFIG_ENABLE_CHRONO_STRINGMAKER
-#endif
-
-// Separate std::pair specialization
-#if defined(CATCH_CONFIG_ENABLE_PAIR_STRINGMAKER)
-#include <utility>
-namespace Catch {
-template <typename T1, typename T2> struct StringMaker<std::pair<T1, T2>> {
-  static std::string convert(const std::pair<T1, T2> &pair) {
-    ReusableStringStream rss;
-    rss << "{ " << ::Catch::Detail::stringify(pair.first) << ", " << ::Catch::Detail::stringify(pair.second) << " }";
-    return rss.str();
-  }
-};
-} // namespace Catch
-#endif // CATCH_CONFIG_ENABLE_PAIR_STRINGMAKER
-
-// Separate std::tuple specialization
-#if defined(CATCH_CONFIG_ENABLE_TUPLE_STRINGMAKER)
-#include <tuple>
-namespace Catch {
-namespace Detail {
-template <typename Tuple, std::size_t N = 0, bool = (N < std::tuple_size<Tuple>::value)> struct TupleElementPrinter {
-  static void print(const Tuple &tuple, std::ostream &os) {
-    os << (N ? ", " : " ") << ::Catch::Detail::stringify(std::get<N>(tuple));
-    TupleElementPrinter<Tuple, N + 1>::print(tuple, os);
-  }
-};
-
-template <typename Tuple, std::size_t N> struct TupleElementPrinter<Tuple, N, false> {
-  static void print(const Tuple &, std::ostream &) {
-  }
-};
-
-} // namespace Detail
-
-template <typename... Types> struct StringMaker<std::tuple<Types...>> {
-  static std::string convert(const std::tuple<Types...> &tuple) {
-    ReusableStringStream rss;
-    rss << '{';
-    Detail::TupleElementPrinter<std::tuple<Types...>>::print(tuple, rss.get());
-    rss << " }";
-    return rss.str();
-  }
-};
-} // namespace Catch
-#endif // CATCH_CONFIG_ENABLE_TUPLE_STRINGMAKER
-
-namespace Catch {
-struct not_this_one {}; // Tag type for detecting which begin/ end are being selected
-
-// Import begin/ end from std here so they are considered alongside the fallback (...) overloads in this namespace
-using std::begin;
-using std::end;
-
-not_this_one begin(...);
-not_this_one end(...);
-
-template <typename T> struct is_range {
-  static const bool value = !std::is_same<decltype(begin(std::declval<T>())), not_this_one>::value &&
-                            !std::is_same<decltype(end(std::declval<T>())), not_this_one>::value;
-};
-
-#if defined(_MANAGED) // Managed types are never ranges
-template <typename T> struct is_range<T ^> { static const bool value = false; };
-#endif
-
-template <typename Range> std::string rangeToString(Range const &range) {
-  return ::Catch::Detail::rangeToString(begin(range), end(range));
-}
-
-// Handle vector<bool> specially
-template <typename Allocator> std::string rangeToString(std::vector<bool, Allocator> const &v) {
-  ReusableStringStream rss;
-  rss << "{ ";
-  bool first = true;
-  for (bool b : v) {
-    if (first)
-      first = false;
-    else
-      rss << ", ";
-    rss << ::Catch::Detail::stringify(b);
-  }
-  rss << " }";
-  return rss.str();
-}
-
-template <typename R>
-struct StringMaker<
-    R, typename std::enable_if<is_range<R>::value && !::Catch::Detail::IsStreamInsertable<R>::value>::type> {
-  static std::string convert(R const &range) {
-    return rangeToString(range);
-  }
-};
-
-template <typename T, int SZ> struct StringMaker<T[SZ]> {
-  static std::string convert(T const (&arr)[SZ]) {
-    return rangeToString(arr);
-  }
-};
-
-} // namespace Catch
-
-// Separate std::chrono::duration specialization
-#if defined(CATCH_CONFIG_ENABLE_CHRONO_STRINGMAKER)
-#include <chrono>
-#include <ctime>
-#include <ratio>
-
-namespace Catch {
-
-template <class Ratio> struct ratio_string { static std::string symbol(); };
-
-template <class Ratio> std::string ratio_string<Ratio>::symbol() {
-  Catch::ReusableStringStream rss;
-  rss << '[' << Ratio::num << '/' << Ratio::den << ']';
-  return rss.str();
-}
-template <> struct ratio_string<std::atto> { static std::string symbol(); };
-template <> struct ratio_string<std::femto> { static std::string symbol(); };
-template <> struct ratio_string<std::pico> { static std::string symbol(); };
-template <> struct ratio_string<std::nano> { static std::string symbol(); };
-template <> struct ratio_string<std::micro> { static std::string symbol(); };
-template <> struct ratio_string<std::milli> { static std::string symbol(); };
-
-////////////
-// std::chrono::duration specializations
-template <typename Value, typename Ratio> struct StringMaker<std::chrono::duration<Value, Ratio>> {
-  static std::string convert(std::chrono::duration<Value, Ratio> const &duration) {
-    ReusableStringStream rss;
-    rss << duration.count() << ' ' << ratio_string<Ratio>::symbol() << 's';
-    return rss.str();
-  }
-};
-template <typename Value> struct StringMaker<std::chrono::duration<Value, std::ratio<1>>> {
-  static std::string convert(std::chrono::duration<Value, std::ratio<1>> const &duration) {
-    ReusableStringStream rss;
-    rss << duration.count() << " s";
-    return rss.str();
-  }
-};
-template <typename Value> struct StringMaker<std::chrono::duration<Value, std::ratio<60>>> {
-  static std::string convert(std::chrono::duration<Value, std::ratio<60>> const &duration) {
-    ReusableStringStream rss;
-    rss << duration.count() << " m";
-    return rss.str();
-  }
-};
-template <typename Value> struct StringMaker<std::chrono::duration<Value, std::ratio<3600>>> {
-  static std::string convert(std::chrono::duration<Value, std::ratio<3600>> const &duration) {
-    ReusableStringStream rss;
-    rss << duration.count() << " h";
-    return rss.str();
-  }
-};
-
-////////////
-// std::chrono::time_point specialization
-// Generic time_point cannot be specialized, only std::chrono::time_point<system_clock>
-template <typename Clock, typename Duration> struct StringMaker<std::chrono::time_point<Clock, Duration>> {
-  static std::string convert(std::chrono::time_point<Clock, Duration> const &time_point) {
-    return ::Catch::Detail::stringify(time_point.time_since_epoch()) + " since epoch";
-  }
-};
-// std::chrono::time_point<system_clock> specialization
-template <typename Duration> struct StringMaker<std::chrono::time_point<std::chrono::system_clock, Duration>> {
-  static std::string convert(std::chrono::time_point<std::chrono::system_clock, Duration> const &time_point) {
-    auto converted = std::chrono::system_clock::to_time_t(time_point);
-
-#ifdef _MSC_VER
-    std::tm timeInfo = {};
-    gmtime_s(&timeInfo, &converted);
-#else
-    std::tm *timeInfo = std::gmtime(&converted);
-#endif
-
-    auto const timeStampSize = sizeof("2017-01-16T17:06:45Z");
-    char timeStamp[timeStampSize];
-    const char *const fmt = "%Y-%m-%dT%H:%M:%SZ";
-
-#ifdef _MSC_VER
-    std::strftime(timeStamp, timeStampSize, fmt, &timeInfo);
-#else
-    std::strftime(timeStamp, timeStampSize, fmt, timeInfo);
-#endif
-    return std::string(timeStamp);
-  }
-};
-} // namespace Catch
-#endif // CATCH_CONFIG_ENABLE_CHRONO_STRINGMAKER
-
-#ifdef _MSC_VER
-#pragma warning(pop)
-#endif
-
-// end catch_tostring.h
-#include <iosfwd>
-
-#ifdef _MSC_VER
-#pragma warning(push)
-#pragma warning(disable : 4389) // '==' : signed/unsigned mismatch
-#pragma warning(disable : 4018) // more "signed/unsigned mismatch"
-#pragma warning(disable : 4312) // Converting int to T* using reinterpret_cast (issue on x64 platform)
-#pragma warning(disable : 4180) // qualifier applied to function type has no meaning
-#endif
-
-namespace Catch {
-
-struct ITransientExpression {
-  auto isBinaryExpression() const -> bool {
-    return m_isBinaryExpression;
-  }
-  auto getResult() const -> bool {
-    return m_result;
-  }
-  virtual void streamReconstructedExpression(std::ostream &os) const = 0;
-
-  ITransientExpression(bool isBinaryExpression, bool result)
-      : m_isBinaryExpression(isBinaryExpression), m_result(result) {
-  }
-
-  // We don't actually need a virtual destructor, but many static analysers
-  // complain if it's not here :-(
-  virtual ~ITransientExpression();
-
-  bool m_isBinaryExpression;
-  bool m_result;
-};
-
-void formatReconstructedExpression(std::ostream &os, std::string const &lhs, StringRef op, std::string const &rhs);
-
-template <typename LhsT, typename RhsT> class BinaryExpr : public ITransientExpression {
-  LhsT m_lhs;
-  StringRef m_op;
-  RhsT m_rhs;
-
-  void streamReconstructedExpression(std::ostream &os) const override {
-    formatReconstructedExpression(os, Catch::Detail::stringify(m_lhs), m_op, Catch::Detail::stringify(m_rhs));
-  }
-
-public:
-  BinaryExpr(bool comparisonResult, LhsT lhs, StringRef op, RhsT rhs)
-      : ITransientExpression{true, comparisonResult}, m_lhs(lhs), m_op(op), m_rhs(rhs) {
-  }
-};
-
-template <typename LhsT> class UnaryExpr : public ITransientExpression {
-  LhsT m_lhs;
-
-  void streamReconstructedExpression(std::ostream &os) const override {
-    os << Catch::Detail::stringify(m_lhs);
-  }
-
-public:
-  explicit UnaryExpr(LhsT lhs) : ITransientExpression{false, lhs ? true : false}, m_lhs(lhs) {
-  }
-};
-
-// Specialised comparison functions to handle equality comparisons between ints and pointers (NULL deduces as an int)
-template <typename LhsT, typename RhsT> auto compareEqual(LhsT const &lhs, RhsT const &rhs) -> bool {
-  return static_cast<bool>(lhs == rhs);
-}
-template <typename T> auto compareEqual(T *const &lhs, int rhs) -> bool {
-  return lhs == reinterpret_cast<void const *>(rhs);
-}
-template <typename T> auto compareEqual(T *const &lhs, long rhs) -> bool {
-  return lhs == reinterpret_cast<void const *>(rhs);
-}
-template <typename T> auto compareEqual(int lhs, T *const &rhs) -> bool {
-  return reinterpret_cast<void const *>(lhs) == rhs;
-}
-template <typename T> auto compareEqual(long lhs, T *const &rhs) -> bool {
-  return reinterpret_cast<void const *>(lhs) == rhs;
-}
-
-template <typename LhsT, typename RhsT> auto compareNotEqual(LhsT const &lhs, RhsT &&rhs) -> bool {
-  return static_cast<bool>(lhs != rhs);
-}
-template <typename T> auto compareNotEqual(T *const &lhs, int rhs) -> bool {
-  return lhs != reinterpret_cast<void const *>(rhs);
-}
-template <typename T> auto compareNotEqual(T *const &lhs, long rhs) -> bool {
-  return lhs != reinterpret_cast<void const *>(rhs);
-}
-template <typename T> auto compareNotEqual(int lhs, T *const &rhs) -> bool {
-  return reinterpret_cast<void const *>(lhs) != rhs;
-}
-template <typename T> auto compareNotEqual(long lhs, T *const &rhs) -> bool {
-  return reinterpret_cast<void const *>(lhs) != rhs;
-}
-
-template <typename LhsT> class ExprLhs {
-  LhsT m_lhs;
-
-public:
-  explicit ExprLhs(LhsT lhs) : m_lhs(lhs) {
-  }
-
-  template <typename RhsT> auto operator==(RhsT const &rhs) -> BinaryExpr<LhsT, RhsT const &> const {
-    return {compareEqual(m_lhs, rhs), m_lhs, "==", rhs};
-  }
-  auto operator==(bool rhs) -> BinaryExpr<LhsT, bool> const {
-    return {m_lhs == rhs, m_lhs, "==", rhs};
-  }
-
-  template <typename RhsT> auto operator!=(RhsT const &rhs) -> BinaryExpr<LhsT, RhsT const &> const {
-    return {compareNotEqual(m_lhs, rhs), m_lhs, "!=", rhs};
-  }
-  auto operator!=(bool rhs) -> BinaryExpr<LhsT, bool> const {
-    return {m_lhs != rhs, m_lhs, "!=", rhs};
-  }
-
-  template <typename RhsT> auto operator>(RhsT const &rhs) -> BinaryExpr<LhsT, RhsT const &> const {
-    return {static_cast<bool>(m_lhs > rhs), m_lhs, ">", rhs};
-  }
-  template <typename RhsT> auto operator<(RhsT const &rhs) -> BinaryExpr<LhsT, RhsT const &> const {
-    return {static_cast<bool>(m_lhs < rhs), m_lhs, "<", rhs};
-  }
-  template <typename RhsT> auto operator>=(RhsT const &rhs) -> BinaryExpr<LhsT, RhsT const &> const {
-    return {static_cast<bool>(m_lhs >= rhs), m_lhs, ">=", rhs};
-  }
-  template <typename RhsT> auto operator<=(RhsT const &rhs) -> BinaryExpr<LhsT, RhsT const &> const {
-    return {static_cast<bool>(m_lhs <= rhs), m_lhs, "<=", rhs};
-  }
-
-  auto makeUnaryExpr() const -> UnaryExpr<LhsT> {
-    return UnaryExpr<LhsT>{m_lhs};
-  }
-};
-
-void handleExpression(ITransientExpression const &expr);
-
-template <typename T> void handleExpression(ExprLhs<T> const &expr) {
-  handleExpression(expr.makeUnaryExpr());
-}
-
-struct Decomposer {
-  template <typename T> auto operator<=(T const &lhs) -> ExprLhs<T const &> {
-    return ExprLhs<T const &>{lhs};
-  }
-
-  auto operator<=(bool value) -> ExprLhs<bool> {
-    return ExprLhs<bool>{value};
-  }
-};
-
-} // end namespace Catch
-
-#ifdef _MSC_VER
-#pragma warning(pop)
-#endif
-
-// end catch_decomposer.h
-// start catch_interfaces_capture.h
-
-#include <string>
-
-namespace Catch {
-
-class AssertionResult;
-struct AssertionInfo;
-struct SectionInfo;
-struct SectionEndInfo;
-struct MessageInfo;
-struct Counts;
-struct BenchmarkInfo;
-struct BenchmarkStats;
-struct AssertionReaction;
-
-struct ITransientExpression;
-
-struct IResultCapture {
-
-  virtual ~IResultCapture();
-
-  virtual bool sectionStarted(SectionInfo const &sectionInfo, Counts &assertions) = 0;
-  virtual void sectionEnded(SectionEndInfo const &endInfo)                        = 0;
-  virtual void sectionEndedEarly(SectionEndInfo const &endInfo)                   = 0;
-
-  virtual void benchmarkStarting(BenchmarkInfo const &info) = 0;
-  virtual void benchmarkEnded(BenchmarkStats const &stats)  = 0;
-
-  virtual void pushScopedMessage(MessageInfo const &message) = 0;
-  virtual void popScopedMessage(MessageInfo const &message)  = 0;
-
-  virtual void handleFatalErrorCondition(StringRef message) = 0;
-
-  virtual void handleExpr(AssertionInfo const &info, ITransientExpression const &expr, AssertionReaction &reaction) = 0;
-  virtual void handleMessage(AssertionInfo const &info, ResultWas::OfType resultType, StringRef const &message,
-                             AssertionReaction &reaction)                                                           = 0;
-  virtual void handleUnexpectedExceptionNotThrown(AssertionInfo const &info, AssertionReaction &reaction)           = 0;
-  virtual void handleUnexpectedInflightException(AssertionInfo const &info, std::string const &message,
-                                                 AssertionReaction &reaction)                                       = 0;
-  virtual void handleIncomplete(AssertionInfo const &info)                                                          = 0;
-  virtual void handleNonExpr(AssertionInfo const &info, ResultWas::OfType resultType, AssertionReaction &reaction)  = 0;
-
-  virtual bool lastAssertionPassed() = 0;
-  virtual void assertionPassed()     = 0;
-
-  // Deprecated, do not use:
-  virtual std::string getCurrentTestName() const       = 0;
-  virtual const AssertionResult *getLastResult() const = 0;
-  virtual void exceptionEarlyReported()                = 0;
-};
-
-IResultCapture &getResultCapture();
-} // namespace Catch
-
-// end catch_interfaces_capture.h
-namespace Catch {
-
-struct TestFailureException {};
-struct AssertionResultData;
-struct IResultCapture;
-class RunContext;
-
-class LazyExpression {
-  friend class AssertionHandler;
-  friend struct AssertionStats;
-  friend class RunContext;
-
-  ITransientExpression const *m_transientExpression = nullptr;
-  bool m_isNegated;
-
-public:
-  LazyExpression(bool isNegated);
-  LazyExpression(LazyExpression const &other);
-  LazyExpression &operator=(LazyExpression const &) = delete;
-
-  explicit operator bool() const;
-
-  friend auto operator<<(std::ostream &os, LazyExpression const &lazyExpr) -> std::ostream &;
-};
-
-struct AssertionReaction {
-  bool shouldDebugBreak = false;
-  bool shouldThrow      = false;
-};
-
-class AssertionHandler {
-  AssertionInfo m_assertionInfo;
-  AssertionReaction m_reaction;
-  bool m_completed = false;
-  IResultCapture &m_resultCapture;
-
-public:
-  AssertionHandler(StringRef macroName, SourceLineInfo const &lineInfo, StringRef capturedExpression,
-                   ResultDisposition::Flags resultDisposition);
-  ~AssertionHandler() {
-    if (!m_completed) {
-      m_resultCapture.handleIncomplete(m_assertionInfo);
-    }
-  }
-
-  template <typename T> void handleExpr(ExprLhs<T> const &expr) {
-    handleExpr(expr.makeUnaryExpr());
-  }
-  void handleExpr(ITransientExpression const &expr);
-
-  void handleMessage(ResultWas::OfType resultType, StringRef const &message);
-
-  void handleExceptionThrownAsExpected();
-  void handleUnexpectedExceptionNotThrown();
-  void handleExceptionNotThrownAsExpected();
-  void handleThrowingCallSkipped();
-  void handleUnexpectedInflightException();
-
-  void complete();
-  void setCompleted();
-
-  // query
-  auto allowThrows() const -> bool;
-};
-
-void handleExceptionMatchExpr(AssertionHandler &handler, std::string const &str, StringRef matcherString);
-
-} // namespace Catch
-
-// end catch_assertionhandler.h
-// start catch_message.h
-
-#include <string>
-
-namespace Catch {
-
-struct MessageInfo {
-  MessageInfo(std::string const &_macroName, SourceLineInfo const &_lineInfo, ResultWas::OfType _type);
-
-  std::string macroName;
-  std::string message;
-  SourceLineInfo lineInfo;
-  ResultWas::OfType type;
-  unsigned int sequence;
-
-  bool operator==(MessageInfo const &other) const;
-  bool operator<(MessageInfo const &other) const;
-
-private:
-  static unsigned int globalCount;
-};
-
-struct MessageStream {
-
-  template <typename T> MessageStream &operator<<(T const &value) {
-    m_stream << value;
-    return *this;
-  }
-
-  ReusableStringStream m_stream;
-};
-
-struct MessageBuilder : MessageStream {
-  MessageBuilder(std::string const &macroName, SourceLineInfo const &lineInfo, ResultWas::OfType type);
-
-  template <typename T> MessageBuilder &operator<<(T const &value) {
-    m_stream << value;
-    return *this;
-  }
-
-  MessageInfo m_info;
-};
-
-class ScopedMessage {
-public:
-  explicit ScopedMessage(MessageBuilder const &builder);
-  ~ScopedMessage();
-
-  MessageInfo m_info;
-};
-
-} // end namespace Catch
-
-// end catch_message.h
-#if !defined(CATCH_CONFIG_DISABLE)
-
-#if !defined(CATCH_CONFIG_DISABLE_STRINGIFICATION)
-#define CATCH_INTERNAL_STRINGIFY(...) #__VA_ARGS__
-#else
-#define CATCH_INTERNAL_STRINGIFY(...) "Disabled by CATCH_CONFIG_DISABLE_STRINGIFICATION"
-#endif
-
-#if defined(CATCH_CONFIG_FAST_COMPILE)
-
-///////////////////////////////////////////////////////////////////////////////
-// Another way to speed-up compilation is to omit local try-catch for REQUIRE*
-// macros.
-#define INTERNAL_CATCH_TRY
-#define INTERNAL_CATCH_CATCH(capturer)
-
-#else // CATCH_CONFIG_FAST_COMPILE
-
-#define INTERNAL_CATCH_TRY try
-#define INTERNAL_CATCH_CATCH(handler)                                                                                  \
-  catch (...) {                                                                                                        \
-    handler.handleUnexpectedInflightException();                                                                       \
-  }
-
-#endif
-
-#define INTERNAL_CATCH_REACT(handler) handler.complete();
-
-///////////////////////////////////////////////////////////////////////////////
-#define INTERNAL_CATCH_TEST(macroName, resultDisposition, ...)                                                         \
-  do {                                                                                                                 \
-    Catch::AssertionHandler catchAssertionHandler(macroName, CATCH_INTERNAL_LINEINFO,                                  \
-                                                  CATCH_INTERNAL_STRINGIFY(__VA_ARGS__), resultDisposition);           \
-    INTERNAL_CATCH_TRY {                                                                                               \
-      CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS                                                                     \
-      catchAssertionHandler.handleExpr(Catch::Decomposer() <= __VA_ARGS__);                                            \
-      CATCH_INTERNAL_UNSUPPRESS_PARENTHESES_WARNINGS                                                                   \
-    }                                                                                                                  \
-    INTERNAL_CATCH_CATCH(catchAssertionHandler)                                                                        \
-    INTERNAL_CATCH_REACT(catchAssertionHandler)                                                                        \
-  } while (                                                                                                            \
-      (void)0,                                                                                                         \
-      false &&                                                                                                         \
-          static_cast<bool>(!!(                                                                                        \
-              __VA_ARGS__))) // the expression here is never evaluated at runtime but it forces the compiler to give it a look
-// The double negation silences MSVC's C4800 warning, the static_cast forces short-circuit evaluation if the type has overloaded &&.
-
-///////////////////////////////////////////////////////////////////////////////
-#define INTERNAL_CATCH_IF(macroName, resultDisposition, ...)                                                           \
-  INTERNAL_CATCH_TEST(macroName, resultDisposition, __VA_ARGS__);                                                      \
-  if (Catch::getResultCapture().lastAssertionPassed())
-
-///////////////////////////////////////////////////////////////////////////////
-#define INTERNAL_CATCH_ELSE(macroName, resultDisposition, ...)                                                         \
-  INTERNAL_CATCH_TEST(macroName, resultDisposition, __VA_ARGS__);                                                      \
-  if (!Catch::getResultCapture().lastAssertionPassed())
-
-///////////////////////////////////////////////////////////////////////////////
-#define INTERNAL_CATCH_NO_THROW(macroName, resultDisposition, ...)                                                     \
-  do {                                                                                                                 \
-    Catch::AssertionHandler catchAssertionHandler(macroName, CATCH_INTERNAL_LINEINFO,                                  \
-                                                  CATCH_INTERNAL_STRINGIFY(__VA_ARGS__), resultDisposition);           \
-    try {                                                                                                              \
-      static_cast<void>(__VA_ARGS__);                                                                                  \
-      catchAssertionHandler.handleExceptionNotThrownAsExpected();                                                      \
-    } catch (...) {                                                                                                    \
-      catchAssertionHandler.handleUnexpectedInflightException();                                                       \
-    }                                                                                                                  \
-    INTERNAL_CATCH_REACT(catchAssertionHandler)                                                                        \
-  } while (false)
-
-///////////////////////////////////////////////////////////////////////////////
-#define INTERNAL_CATCH_THROWS(macroName, resultDisposition, ...)                                                       \
-  do {                                                                                                                 \
-    Catch::AssertionHandler catchAssertionHandler(macroName, CATCH_INTERNAL_LINEINFO,                                  \
-                                                  CATCH_INTERNAL_STRINGIFY(__VA_ARGS__), resultDisposition);           \
-    if (catchAssertionHandler.allowThrows())                                                                           \
-      try {                                                                                                            \
-        static_cast<void>(__VA_ARGS__);                                                                                \
-        catchAssertionHandler.handleUnexpectedExceptionNotThrown();                                                    \
-      } catch (...) {                                                                                                  \
-        catchAssertionHandler.handleExceptionThrownAsExpected();                                                       \
-      }                                                                                                                \
-    else                                                                                                               \
-      catchAssertionHandler.handleThrowingCallSkipped();                                                               \
-    INTERNAL_CATCH_REACT(catchAssertionHandler)                                                                        \
-  } while (false)
-
-///////////////////////////////////////////////////////////////////////////////
-#define INTERNAL_CATCH_THROWS_AS(macroName, exceptionType, resultDisposition, expr)                                    \
-  do {                                                                                                                 \
-    Catch::AssertionHandler catchAssertionHandler(                                                                     \
-        macroName, CATCH_INTERNAL_LINEINFO,                                                                            \
-        CATCH_INTERNAL_STRINGIFY(expr) ", " CATCH_INTERNAL_STRINGIFY(exceptionType), resultDisposition);               \
-    if (catchAssertionHandler.allowThrows())                                                                           \
-      try {                                                                                                            \
-        static_cast<void>(expr);                                                                                       \
-        catchAssertionHandler.handleUnexpectedExceptionNotThrown();                                                    \
-      } catch (exceptionType const &) {                                                                                \
-        catchAssertionHandler.handleExceptionThrownAsExpected();                                                       \
-      } catch (...) {                                                                                                  \
-        catchAssertionHandler.handleUnexpectedInflightException();                                                     \
-      }                                                                                                                \
-    else                                                                                                               \
-      catchAssertionHandler.handleThrowingCallSkipped();                                                               \
-    INTERNAL_CATCH_REACT(catchAssertionHandler)                                                                        \
-  } while (false)
-
-///////////////////////////////////////////////////////////////////////////////
-#define INTERNAL_CATCH_MSG(macroName, messageType, resultDisposition, ...)                                             \
-  do {                                                                                                                 \
-    Catch::AssertionHandler catchAssertionHandler(macroName, CATCH_INTERNAL_LINEINFO, "", resultDisposition);          \
-    catchAssertionHandler.handleMessage(                                                                               \
-        messageType, (Catch::MessageStream() << __VA_ARGS__ + ::Catch::StreamEndStop()).m_stream.str());               \
-    INTERNAL_CATCH_REACT(catchAssertionHandler)                                                                        \
-  } while (false)
-
-///////////////////////////////////////////////////////////////////////////////
-#define INTERNAL_CATCH_INFO(macroName, log)                                                                            \
-  Catch::ScopedMessage INTERNAL_CATCH_UNIQUE_NAME(scopedMessage)(                                                      \
-      Catch::MessageBuilder(macroName, CATCH_INTERNAL_LINEINFO, Catch::ResultWas::Info) << log);
-
-///////////////////////////////////////////////////////////////////////////////
-// Although this is matcher-based, it can be used with just a string
-#define INTERNAL_CATCH_THROWS_STR_MATCHES(macroName, resultDisposition, matcher, ...)                                  \
-  do {                                                                                                                 \
-    Catch::AssertionHandler catchAssertionHandler(                                                                     \
-        macroName, CATCH_INTERNAL_LINEINFO,                                                                            \
-        CATCH_INTERNAL_STRINGIFY(__VA_ARGS__) ", " CATCH_INTERNAL_STRINGIFY(matcher), resultDisposition);              \
-    if (catchAssertionHandler.allowThrows())                                                                           \
-      try {                                                                                                            \
-        static_cast<void>(__VA_ARGS__);                                                                                \
-        catchAssertionHandler.handleUnexpectedExceptionNotThrown();                                                    \
-      } catch (...) {                                                                                                  \
-        Catch::handleExceptionMatchExpr(catchAssertionHandler, matcher, #matcher);                                     \
-      }                                                                                                                \
-    else                                                                                                               \
-      catchAssertionHandler.handleThrowingCallSkipped();                                                               \
-    INTERNAL_CATCH_REACT(catchAssertionHandler)                                                                        \
-  } while (false)
-
-#endif // CATCH_CONFIG_DISABLE
-
-// end catch_capture.hpp
-// start catch_section.h
-
-// start catch_section_info.h
-
-// start catch_totals.h
-
-#include <cstddef>
-
-namespace Catch {
-
-struct Counts {
-  Counts operator-(Counts const &other) const;
-  Counts &operator+=(Counts const &other);
-
-  std::size_t total() const;
-  bool allPassed() const;
-  bool allOk() const;
-
-  std::size_t passed      = 0;
-  std::size_t failed      = 0;
-  std::size_t failedButOk = 0;
-};
-
-struct Totals {
-
-  Totals operator-(Totals const &other) const;
-  Totals &operator+=(Totals const &other);
-
-  Totals delta(Totals const &prevTotals) const;
-
-  int error = 0;
-  Counts assertions;
-  Counts testCases;
-};
-} // namespace Catch
-
-// end catch_totals.h
-#include <string>
-
-namespace Catch {
-
-struct SectionInfo {
-  SectionInfo(SourceLineInfo const &_lineInfo, std::string const &_name,
-              std::string const &_description = std::string());
-
-  std::string name;
-  std::string description;
-  SourceLineInfo lineInfo;
-};
-
-struct SectionEndInfo {
-  SectionEndInfo(SectionInfo const &_sectionInfo, Counts const &_prevAssertions, double _durationInSeconds);
-
-  SectionInfo sectionInfo;
-  Counts prevAssertions;
-  double durationInSeconds;
-};
-
-} // end namespace Catch
-
-// end catch_section_info.h
-// start catch_timer.h
-
-#include <cstdint>
-
-namespace Catch {
-
-auto getCurrentNanosecondsSinceEpoch() -> uint64_t;
-auto getEstimatedClockResolution() -> uint64_t;
-
-class Timer {
-  uint64_t m_nanoseconds = 0;
-
-public:
-  void start();
-  auto getElapsedNanoseconds() const -> uint64_t;
-  auto getElapsedMicroseconds() const -> uint64_t;
-  auto getElapsedMilliseconds() const -> unsigned int;
-  auto getElapsedSeconds() const -> double;
-};
-
-} // namespace Catch
-
-// end catch_timer.h
-#include <string>
-
-namespace Catch {
-
-class Section : NonCopyable {
-public:
-  Section(SectionInfo const &info);
-  ~Section();
-
-  // This indicates whether the section should be executed or not
-  explicit operator bool() const;
-
-private:
-  SectionInfo m_info;
-
-  std::string m_name;
-  Counts m_assertions;
-  bool m_sectionIncluded;
-  Timer m_timer;
-};
-
-} // end namespace Catch
-
-#define INTERNAL_CATCH_SECTION(...)                                                                                    \
-  if (Catch::Section const &INTERNAL_CATCH_UNIQUE_NAME(catch_internal_Section) =                                       \
-          Catch::SectionInfo(CATCH_INTERNAL_LINEINFO, __VA_ARGS__))
-
-// end catch_section.h
-// start catch_benchmark.h
-
-#include <cstdint>
-#include <string>
-
-namespace Catch {
-
-class BenchmarkLooper {
-
-  std::string m_name;
-  std::size_t m_count           = 0;
-  std::size_t m_iterationsToRun = 1;
-  uint64_t m_resolution;
-  Timer m_timer;
-
-  static auto getResolution() -> uint64_t;
-
-public:
-  // Keep most of this inline as it's on the code path that is being timed
-  BenchmarkLooper(StringRef name) : m_name(name), m_resolution(getResolution()) {
-    reportStart();
-    m_timer.start();
-  }
-
-  explicit operator bool() {
-    if (m_count < m_iterationsToRun)
-      return true;
-    return needsMoreIterations();
-  }
-
-  void increment() {
-    ++m_count;
-  }
-
-  void reportStart();
-  auto needsMoreIterations() -> bool;
-};
-
-} // end namespace Catch
-
-#define BENCHMARK(name) for (Catch::BenchmarkLooper looper(name); looper; looper.increment())
-
-// end catch_benchmark.h
-// start catch_interfaces_exception.h
-
-// start catch_interfaces_registry_hub.h
-
-#include <memory>
-#include <string>
-
-namespace Catch {
-
-class TestCase;
-struct ITestCaseRegistry;
-struct IExceptionTranslatorRegistry;
-struct IExceptionTranslator;
-struct IReporterRegistry;
-struct IReporterFactory;
-struct ITagAliasRegistry;
-class StartupExceptionRegistry;
-
-using IReporterFactoryPtr = std::shared_ptr<IReporterFactory>;
-
-struct IRegistryHub {
-  virtual ~IRegistryHub();
-
-  virtual IReporterRegistry const &getReporterRegistry() const = 0;
-  virtual ITestCaseRegistry const &getTestCaseRegistry() const = 0;
-  virtual ITagAliasRegistry const &getTagAliasRegistry() const = 0;
-
-  virtual IExceptionTranslatorRegistry &getExceptionTranslatorRegistry() = 0;
-
-  virtual StartupExceptionRegistry const &getStartupExceptionRegistry() const = 0;
-};
-
-struct IMutableRegistryHub {
-  virtual ~IMutableRegistryHub();
-  virtual void registerReporter(std::string const &name, IReporterFactoryPtr const &factory)                      = 0;
-  virtual void registerListener(IReporterFactoryPtr const &factory)                                               = 0;
-  virtual void registerTest(TestCase const &testInfo)                                                             = 0;
-  virtual void registerTranslator(const IExceptionTranslator *translator)                                         = 0;
-  virtual void registerTagAlias(std::string const &alias, std::string const &tag, SourceLineInfo const &lineInfo) = 0;
-  virtual void registerStartupException() noexcept                                                                = 0;
-};
-
-IRegistryHub &getRegistryHub();
-IMutableRegistryHub &getMutableRegistryHub();
-void cleanUp();
-std::string translateActiveException();
-
-} // namespace Catch
-
-// end catch_interfaces_registry_hub.h
-#if defined(CATCH_CONFIG_DISABLE)
-#define INTERNAL_CATCH_TRANSLATE_EXCEPTION_NO_REG(translatorName, signature)                                           \
-  static std::string translatorName(signature)
-#endif
-
-#include <exception>
-#include <string>
-#include <vector>
-
-namespace Catch {
-using exceptionTranslateFunction = std::string (*)();
-
-struct IExceptionTranslator;
-using ExceptionTranslators = std::vector<std::unique_ptr<IExceptionTranslator const>>;
-
-struct IExceptionTranslator {
-  virtual ~IExceptionTranslator();
-  virtual std::string translate(ExceptionTranslators::const_iterator it,
-                                ExceptionTranslators::const_iterator itEnd) const = 0;
-};
-
-struct IExceptionTranslatorRegistry {
-  virtual ~IExceptionTranslatorRegistry();
-
-  virtual std::string translateActiveException() const = 0;
-};
-
-class ExceptionTranslatorRegistrar {
-  template <typename T> class ExceptionTranslator : public IExceptionTranslator {
-  public:
-    ExceptionTranslator(std::string (*translateFunction)(T &)) : m_translateFunction(translateFunction) {
-    }
-
-    std::string translate(ExceptionTranslators::const_iterator it,
-                          ExceptionTranslators::const_iterator itEnd) const override {
-      try {
-        if (it == itEnd)
-          std::rethrow_exception(std::current_exception());
-        else
-          return (*it)->translate(it + 1, itEnd);
-      } catch (T &ex) {
-        return m_translateFunction(ex);
-      }
-    }
-
-  protected:
-    std::string (*m_translateFunction)(T &);
-  };
-
-public:
-  template <typename T> ExceptionTranslatorRegistrar(std::string (*translateFunction)(T &)) {
-    getMutableRegistryHub().registerTranslator(new ExceptionTranslator<T>(translateFunction));
-  }
-};
-} // namespace Catch
-
-///////////////////////////////////////////////////////////////////////////////
-#define INTERNAL_CATCH_TRANSLATE_EXCEPTION2(translatorName, signature)                                                 \
-  static std::string translatorName(signature);                                                                        \
-  CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS                                                                             \
-  namespace {                                                                                                          \
-  Catch::ExceptionTranslatorRegistrar INTERNAL_CATCH_UNIQUE_NAME(catch_internal_ExceptionRegistrar)(&translatorName);  \
-  }                                                                                                                    \
-  CATCH_INTERNAL_UNSUPPRESS_GLOBALS_WARNINGS                                                                           \
-  static std::string translatorName(signature)
-
-#define INTERNAL_CATCH_TRANSLATE_EXCEPTION(signature)                                                                  \
-  INTERNAL_CATCH_TRANSLATE_EXCEPTION2(INTERNAL_CATCH_UNIQUE_NAME(catch_internal_ExceptionTranslator), signature)
-
-// end catch_interfaces_exception.h
-// start catch_approx.h
-
-#include <stdexcept>
-#include <type_traits>
-
-namespace Catch {
-namespace Detail {
-
-class Approx {
-private:
-  bool equalityComparisonImpl(double other) const;
-
-public:
-  explicit Approx(double value);
-
-  static Approx custom();
-
-  template <typename T, typename = typename std::enable_if<std::is_constructible<double, T>::value>::type>
-  Approx operator()(T const &value) {
-    Approx approx(static_cast<double>(value));
-    approx.epsilon(m_epsilon);
-    approx.margin(m_margin);
-    approx.scale(m_scale);
-    return approx;
-  }
-
-  template <typename T, typename = typename std::enable_if<std::is_constructible<double, T>::value>::type>
-  explicit Approx(T const &value) : Approx(static_cast<double>(value)) {
-  }
-
-  template <typename T, typename = typename std::enable_if<std::is_constructible<double, T>::value>::type>
-  friend bool operator==(const T &lhs, Approx const &rhs) {
-    auto lhs_v = static_cast<double>(lhs);
-    return rhs.equalityComparisonImpl(lhs_v);
-  }
-
-  template <typename T, typename = typename std::enable_if<std::is_constructible<double, T>::value>::type>
-  friend bool operator==(Approx const &lhs, const T &rhs) {
-    return operator==(rhs, lhs);
-  }
-
-  template <typename T, typename = typename std::enable_if<std::is_constructible<double, T>::value>::type>
-  friend bool operator!=(T const &lhs, Approx const &rhs) {
-    return !operator==(lhs, rhs);
-  }
-
-  template <typename T, typename = typename std::enable_if<std::is_constructible<double, T>::value>::type>
-  friend bool operator!=(Approx const &lhs, T const &rhs) {
-    return !operator==(rhs, lhs);
-  }
-
-  template <typename T, typename = typename std::enable_if<std::is_constructible<double, T>::value>::type>
-  friend bool operator<=(T const &lhs, Approx const &rhs) {
-    return static_cast<double>(lhs) < rhs.m_value || lhs == rhs;
-  }
-
-  template <typename T, typename = typename std::enable_if<std::is_constructible<double, T>::value>::type>
-  friend bool operator<=(Approx const &lhs, T const &rhs) {
-    return lhs.m_value < static_cast<double>(rhs) || lhs == rhs;
-  }
-
-  template <typename T, typename = typename std::enable_if<std::is_constructible<double, T>::value>::type>
-  friend bool operator>=(T const &lhs, Approx const &rhs) {
-    return static_cast<double>(lhs) > rhs.m_value || lhs == rhs;
-  }
-
-  template <typename T, typename = typename std::enable_if<std::is_constructible<double, T>::value>::type>
-  friend bool operator>=(Approx const &lhs, T const &rhs) {
-    return lhs.m_value > static_cast<double>(rhs) || lhs == rhs;
-  }
-
-  template <typename T, typename = typename std::enable_if<std::is_constructible<double, T>::value>::type>
-  Approx &epsilon(T const &newEpsilon) {
-    double epsilonAsDouble = static_cast<double>(newEpsilon);
-    if (epsilonAsDouble < 0 || epsilonAsDouble > 1.0) {
-      throw std::domain_error("Invalid Approx::epsilon: " + Catch::Detail::stringify(epsilonAsDouble) +
-                              ", Approx::epsilon has to be between 0 and 1");
-    }
-    m_epsilon = epsilonAsDouble;
-    return *this;
-  }
-
-  template <typename T, typename = typename std::enable_if<std::is_constructible<double, T>::value>::type>
-  Approx &margin(T const &newMargin) {
-    double marginAsDouble = static_cast<double>(newMargin);
-    if (marginAsDouble < 0) {
-      throw std::domain_error("Invalid Approx::margin: " + Catch::Detail::stringify(marginAsDouble) +
-                              ", Approx::Margin has to be non-negative.");
-    }
-    m_margin = marginAsDouble;
-    return *this;
-  }
-
-  template <typename T, typename = typename std::enable_if<std::is_constructible<double, T>::value>::type>
-  Approx &scale(T const &newScale) {
-    m_scale = static_cast<double>(newScale);
-    return *this;
-  }
-
-  std::string toString() const;
-
-private:
-  double m_epsilon;
-  double m_margin;
-  double m_scale;
-  double m_value;
-};
-} // namespace Detail
-
-template <> struct StringMaker<Catch::Detail::Approx> {
-  static std::string convert(Catch::Detail::Approx const &value);
-};
-
-} // end namespace Catch
-
-// end catch_approx.h
-// start catch_string_manip.h
-
-#include <iosfwd>
-#include <string>
-
-namespace Catch {
-
-bool startsWith(std::string const &s, std::string const &prefix);
-bool startsWith(std::string const &s, char prefix);
-bool endsWith(std::string const &s, std::string const &suffix);
-bool endsWith(std::string const &s, char suffix);
-bool contains(std::string const &s, std::string const &infix);
-void toLowerInPlace(std::string &s);
-std::string toLower(std::string const &s);
-std::string trim(std::string const &str);
-bool replaceInPlace(std::string &str, std::string const &replaceThis, std::string const &withThis);
-
-struct pluralise {
-  pluralise(std::size_t count, std::string const &label);
-
-  friend std::ostream &operator<<(std::ostream &os, pluralise const &pluraliser);
-
-  std::size_t m_count;
-  std::string m_label;
-};
-} // namespace Catch
-
-// end catch_string_manip.h
-#ifndef CATCH_CONFIG_DISABLE_MATCHERS
-// start catch_capture_matchers.h
-
-// start catch_matchers.h
-
-#include <string>
-#include <vector>
-
-namespace Catch {
-namespace Matchers {
-namespace Impl {
-
-template <typename ArgT> struct MatchAllOf;
-template <typename ArgT> struct MatchAnyOf;
-template <typename ArgT> struct MatchNotOf;
-
-class MatcherUntypedBase {
-public:
-  MatcherUntypedBase()                           = default;
-  MatcherUntypedBase(MatcherUntypedBase const &) = default;
-  MatcherUntypedBase &operator=(MatcherUntypedBase const &) = delete;
-  std::string toString() const;
-
-protected:
-  virtual ~MatcherUntypedBase();
-  virtual std::string describe() const = 0;
-  mutable std::string m_cachedToString;
-};
-
-template <typename ObjectT> struct MatcherMethod { virtual bool match(ObjectT const &arg) const = 0; };
-template <typename PtrT> struct MatcherMethod<PtrT *> { virtual bool match(PtrT *arg) const = 0; };
-
-template <typename T> struct MatcherBase : MatcherUntypedBase, MatcherMethod<T> {
-
-  MatchAllOf<T> operator&&(MatcherBase const &other) const;
-  MatchAnyOf<T> operator||(MatcherBase const &other) const;
-  MatchNotOf<T> operator!() const;
-};
-
-template <typename ArgT> struct MatchAllOf : MatcherBase<ArgT> {
-  bool match(ArgT const &arg) const override {
-    for (auto matcher : m_matchers) {
-      if (!matcher->match(arg))
-        return false;
-    }
-    return true;
-  }
-  std::string describe() const override {
-    std::string description;
-    description.reserve(4 + m_matchers.size() * 32);
-    description += "( ";
-    bool first = true;
-    for (auto matcher : m_matchers) {
-      if (first)
-        first = false;
-      else
-        description += " and ";
-      description += matcher->toString();
-    }
-    description += " )";
-    return description;
-  }
-
-  MatchAllOf<ArgT> &operator&&(MatcherBase<ArgT> const &other) {
-    m_matchers.push_back(&other);
-    return *this;
-  }
-
-  std::vector<MatcherBase<ArgT> const *> m_matchers;
-};
-template <typename ArgT> struct MatchAnyOf : MatcherBase<ArgT> {
-
-  bool match(ArgT const &arg) const override {
-    for (auto matcher : m_matchers) {
-      if (matcher->match(arg))
-        return true;
-    }
-    return false;
-  }
-  std::string describe() const override {
-    std::string description;
-    description.reserve(4 + m_matchers.size() * 32);
-    description += "( ";
-    bool first = true;
-    for (auto matcher : m_matchers) {
-      if (first)
-        first = false;
-      else
-        description += " or ";
-      description += matcher->toString();
-    }
-    description += " )";
-    return description;
-  }
-
-  MatchAnyOf<ArgT> &operator||(MatcherBase<ArgT> const &other) {
-    m_matchers.push_back(&other);
-    return *this;
-  }
-
-  std::vector<MatcherBase<ArgT> const *> m_matchers;
-};
-
-template <typename ArgT> struct MatchNotOf : MatcherBase<ArgT> {
-
-  MatchNotOf(MatcherBase<ArgT> const &underlyingMatcher) : m_underlyingMatcher(underlyingMatcher) {
-  }
-
-  bool match(ArgT const &arg) const override {
-    return !m_underlyingMatcher.match(arg);
-  }
-
-  std::string describe() const override {
-    return "not " + m_underlyingMatcher.toString();
-  }
-  MatcherBase<ArgT> const &m_underlyingMatcher;
-};
-
-template <typename T> MatchAllOf<T> MatcherBase<T>::operator&&(MatcherBase const &other) const {
-  return MatchAllOf<T>() && *this && other;
-}
-template <typename T> MatchAnyOf<T> MatcherBase<T>::operator||(MatcherBase const &other) const {
-  return MatchAnyOf<T>() || *this || other;
-}
-template <typename T> MatchNotOf<T> MatcherBase<T>::operator!() const {
-  return MatchNotOf<T>(*this);
-}
-
-} // namespace Impl
-
-} // namespace Matchers
-
-using namespace Matchers;
-using Matchers::Impl::MatcherBase;
-
-} // namespace Catch
-
-// end catch_matchers.h
-// start catch_matchers_floating.h
-
-#include <cmath>
-#include <type_traits>
-
-namespace Catch {
-namespace Matchers {
-
-namespace Floating {
-
-enum class FloatingPointKind : uint8_t;
-
-struct WithinAbsMatcher : MatcherBase<double> {
-  WithinAbsMatcher(double target, double margin);
-  bool match(double const &matchee) const override;
-  std::string describe() const override;
-
-private:
-  double m_target;
-  double m_margin;
-};
-
-struct WithinUlpsMatcher : MatcherBase<double> {
-  WithinUlpsMatcher(double target, int ulps, FloatingPointKind baseType);
-  bool match(double const &matchee) const override;
-  std::string describe() const override;
-
-private:
-  double m_target;
-  int m_ulps;
-  FloatingPointKind m_type;
-};
-
-} // namespace Floating
-
-// The following functions create the actual matcher objects.
-// This allows the types to be inferred
-Floating::WithinUlpsMatcher WithinULP(double target, int maxUlpDiff);
-Floating::WithinUlpsMatcher WithinULP(float target, int maxUlpDiff);
-Floating::WithinAbsMatcher WithinAbs(double target, double margin);
-
-} // namespace Matchers
-} // namespace Catch
-
-// end catch_matchers_floating.h
-// start catch_matchers_generic.hpp
-
-#include <functional>
-#include <string>
-
-namespace Catch {
-namespace Matchers {
-namespace Generic {
-
-namespace Detail {
-std::string finalizeDescription(const std::string &desc);
-}
-
-template <typename T> class PredicateMatcher : public MatcherBase<T> {
-  std::function<bool(T const &)> m_predicate;
-  std::string m_description;
-
-public:
-  PredicateMatcher(std::function<bool(T const &)> const &elem, std::string const &descr)
-      : m_predicate(std::move(elem)), m_description(Detail::finalizeDescription(descr)) {
-  }
-
-  bool match(T const &item) const override {
-    return m_predicate(item);
-  }
-
-  std::string describe() const override {
-    return m_description;
-  }
-};
-
-} // namespace Generic
-
-// The following functions create the actual matcher objects.
-// The user has to explicitly specify type to the function, because
-// infering std::function<bool(T const&)> is hard (but possible) and
-// requires a lot of TMP.
-template <typename T>
-Generic::PredicateMatcher<T> Predicate(std::function<bool(T const &)> const &predicate,
-                                       std::string const &description = "") {
-  return Generic::PredicateMatcher<T>(predicate, description);
-}
-
-} // namespace Matchers
-} // namespace Catch
-
-// end catch_matchers_generic.hpp
-// start catch_matchers_string.h
-
-#include <string>
-
-namespace Catch {
-namespace Matchers {
-
-namespace StdString {
-
-struct CasedString {
-  CasedString(std::string const &str, CaseSensitive::Choice caseSensitivity);
-  std::string adjustString(std::string const &str) const;
-  std::string caseSensitivitySuffix() const;
-
-  CaseSensitive::Choice m_caseSensitivity;
-  std::string m_str;
-};
-
-struct StringMatcherBase : MatcherBase<std::string> {
-  StringMatcherBase(std::string const &operation, CasedString const &comparator);
-  std::string describe() const override;
-
-  CasedString m_comparator;
-  std::string m_operation;
-};
-
-struct EqualsMatcher : StringMatcherBase {
-  EqualsMatcher(CasedString const &comparator);
-  bool match(std::string const &source) const override;
-};
-struct ContainsMatcher : StringMatcherBase {
-  ContainsMatcher(CasedString const &comparator);
-  bool match(std::string const &source) const override;
-};
-struct StartsWithMatcher : StringMatcherBase {
-  StartsWithMatcher(CasedString const &comparator);
-  bool match(std::string const &source) const override;
-};
-struct EndsWithMatcher : StringMatcherBase {
-  EndsWithMatcher(CasedString const &comparator);
-  bool match(std::string const &source) const override;
-};
-
-struct RegexMatcher : MatcherBase<std::string> {
-  RegexMatcher(std::string regex, CaseSensitive::Choice caseSensitivity);
-  bool match(std::string const &matchee) const override;
-  std::string describe() const override;
-
-private:
-  std::string m_regex;
-  CaseSensitive::Choice m_caseSensitivity;
-};
-
-} // namespace StdString
-
-// The following functions create the actual matcher objects.
-// This allows the types to be inferred
-
-StdString::EqualsMatcher Equals(std::string const &str, CaseSensitive::Choice caseSensitivity = CaseSensitive::Yes);
-StdString::ContainsMatcher Contains(std::string const &str, CaseSensitive::Choice caseSensitivity = CaseSensitive::Yes);
-StdString::EndsWithMatcher EndsWith(std::string const &str, CaseSensitive::Choice caseSensitivity = CaseSensitive::Yes);
-StdString::StartsWithMatcher StartsWith(std::string const &str,
-                                        CaseSensitive::Choice caseSensitivity = CaseSensitive::Yes);
-StdString::RegexMatcher Matches(std::string const &regex, CaseSensitive::Choice caseSensitivity = CaseSensitive::Yes);
-
-} // namespace Matchers
-} // namespace Catch
-
-// end catch_matchers_string.h
-// start catch_matchers_vector.h
-
-#include <algorithm>
-
-namespace Catch {
-namespace Matchers {
-
-namespace Vector {
-namespace Detail {
-template <typename InputIterator, typename T> size_t count(InputIterator first, InputIterator last, T const &item) {
-  size_t cnt = 0;
-  for (; first != last; ++first) {
-    if (*first == item) {
-      ++cnt;
-    }
-  }
-  return cnt;
-}
-template <typename InputIterator, typename T> bool contains(InputIterator first, InputIterator last, T const &item) {
-  for (; first != last; ++first) {
-    if (*first == item) {
-      return true;
-    }
-  }
-  return false;
-}
-} // namespace Detail
-
-template <typename T> struct ContainsElementMatcher : MatcherBase<std::vector<T>> {
-
-  ContainsElementMatcher(T const &comparator) : m_comparator(comparator) {
-  }
-
-  bool match(std::vector<T> const &v) const override {
-    for (auto const &el : v) {
-      if (el == m_comparator) {
-        return true;
-      }
-    }
-    return false;
-  }
-
-  std::string describe() const override {
-    return "Contains: " + ::Catch::Detail::stringify(m_comparator);
-  }
-
-  T const &m_comparator;
-};
-
-template <typename T> struct ContainsMatcher : MatcherBase<std::vector<T>> {
-
-  ContainsMatcher(std::vector<T> const &comparator) : m_comparator(comparator) {
-  }
-
-  bool match(std::vector<T> const &v) const override {
-    // !TBD: see note in EqualsMatcher
-    if (m_comparator.size() > v.size())
-      return false;
-    for (auto const &comparator : m_comparator) {
-      auto present = false;
-      for (const auto &el : v) {
-        if (el == comparator) {
-          present = true;
-          break;
-        }
-      }
-      if (!present) {
-        return false;
-      }
-    }
-    return true;
-  }
-  std::string describe() const override {
-    return "Contains: " + ::Catch::Detail::stringify(m_comparator);
-  }
-
-  std::vector<T> const &m_comparator;
-};
-
-template <typename T> struct EqualsMatcher : MatcherBase<std::vector<T>> {
-
-  EqualsMatcher(std::vector<T> const &comparator) : m_comparator(comparator) {
-  }
-
-  bool match(std::vector<T> const &v) const override {
-    // !TBD: This currently works if all elements can be compared using !=
-    // - a more general approach would be via a compare template that defaults
-    // to using !=. but could be specialised for, e.g. std::vector<T> etc
-    // - then just call that directly
-    if (m_comparator.size() != v.size())
-      return false;
-    for (std::size_t i = 0; i < v.size(); ++i)
-      if (m_comparator[i] != v[i])
-        return false;
-    return true;
-  }
-  std::string describe() const override {
-    return "Equals: " + ::Catch::Detail::stringify(m_comparator);
-  }
-  std::vector<T> const &m_comparator;
-};
-
-template <typename T> struct UnorderedEqualsMatcher : MatcherBase<std::vector<T>> {
-  UnorderedEqualsMatcher(std::vector<T> const &target) : m_target(target) {
-  }
-  bool match(std::vector<T> const &vec) const override {
-    // Note: This is a reimplementation of std::is_permutation,
-    //       because I don't want to include <algorithm> inside the common path
-    if (m_target.size() != vec.size()) {
-      return false;
-    }
-    auto lfirst = m_target.begin(), llast = m_target.end();
-    auto rfirst = vec.begin(), rlast = vec.end();
-    // Cut common prefix to optimize checking of permuted parts
-    while (lfirst != llast && *lfirst != *rfirst) {
-      ++lfirst;
-      ++rfirst;
-    }
-    if (lfirst == llast) {
-      return true;
-    }
-
-    for (auto mid = lfirst; mid != llast; ++mid) {
-      // Skip already counted items
-      if (Detail::contains(lfirst, mid, *mid)) {
-        continue;
-      }
-      size_t num_vec = Detail::count(rfirst, rlast, *mid);
-      if (num_vec == 0 || Detail::count(lfirst, llast, *mid) != num_vec) {
-        return false;
-      }
-    }
-
-    return true;
-  }
-
-  std::string describe() const override {
-    return "UnorderedEquals: " + ::Catch::Detail::stringify(m_target);
-  }
-
-private:
-  std::vector<T> const &m_target;
-};
-
-} // namespace Vector
-
-// The following functions create the actual matcher objects.
-// This allows the types to be inferred
-
-template <typename T> Vector::ContainsMatcher<T> Contains(std::vector<T> const &comparator) {
-  return Vector::ContainsMatcher<T>(comparator);
-}
-
-template <typename T> Vector::ContainsElementMatcher<T> VectorContains(T const &comparator) {
-  return Vector::ContainsElementMatcher<T>(comparator);
-}
-
-template <typename T> Vector::EqualsMatcher<T> Equals(std::vector<T> const &comparator) {
-  return Vector::EqualsMatcher<T>(comparator);
-}
-
-template <typename T> Vector::UnorderedEqualsMatcher<T> UnorderedEquals(std::vector<T> const &target) {
-  return Vector::UnorderedEqualsMatcher<T>(target);
-}
-
-} // namespace Matchers
-} // namespace Catch
-
-// end catch_matchers_vector.h
-namespace Catch {
-
-template <typename ArgT, typename MatcherT> class MatchExpr : public ITransientExpression {
-  ArgT const &m_arg;
-  MatcherT m_matcher;
-  StringRef m_matcherString;
-
-public:
-  MatchExpr(ArgT const &arg, MatcherT const &matcher, StringRef matcherString)
-      : ITransientExpression{true, matcher.match(arg)}, m_arg(arg), m_matcher(matcher), m_matcherString(matcherString) {
-  }
-
-  void streamReconstructedExpression(std::ostream &os) const override {
-    auto matcherAsString = m_matcher.toString();
-    os << Catch::Detail::stringify(m_arg) << ' ';
-    if (matcherAsString == Detail::unprintableString)
-      os << m_matcherString;
-    else
-      os << matcherAsString;
-  }
-};
-
-using StringMatcher = Matchers::Impl::MatcherBase<std::string>;
-
-void handleExceptionMatchExpr(AssertionHandler &handler, StringMatcher const &matcher, StringRef matcherString);
-
-template <typename ArgT, typename MatcherT>
-auto makeMatchExpr(ArgT const &arg, MatcherT const &matcher, StringRef matcherString) -> MatchExpr<ArgT, MatcherT> {
-  return MatchExpr<ArgT, MatcherT>(arg, matcher, matcherString);
-}
-
-} // namespace Catch
-
-///////////////////////////////////////////////////////////////////////////////
-#define INTERNAL_CHECK_THAT(macroName, matcher, resultDisposition, arg)                                                \
-  do {                                                                                                                 \
-    Catch::AssertionHandler catchAssertionHandler(                                                                     \
-        macroName, CATCH_INTERNAL_LINEINFO, CATCH_INTERNAL_STRINGIFY(arg) ", " CATCH_INTERNAL_STRINGIFY(matcher),      \
-        resultDisposition);                                                                                            \
-    INTERNAL_CATCH_TRY {                                                                                               \
-      catchAssertionHandler.handleExpr(Catch::makeMatchExpr(arg, matcher, #matcher));                                  \
-    }                                                                                                                  \
-    INTERNAL_CATCH_CATCH(catchAssertionHandler)                                                                        \
-    INTERNAL_CATCH_REACT(catchAssertionHandler)                                                                        \
-  } while (false)
-
-///////////////////////////////////////////////////////////////////////////////
-#define INTERNAL_CATCH_THROWS_MATCHES(macroName, exceptionType, resultDisposition, matcher, ...)                       \
-  do {                                                                                                                 \
-    Catch::AssertionHandler catchAssertionHandler(macroName, CATCH_INTERNAL_LINEINFO,                                  \
-                                                  CATCH_INTERNAL_STRINGIFY(__VA_ARGS__) ", " CATCH_INTERNAL_STRINGIFY( \
-                                                      exceptionType) ", " CATCH_INTERNAL_STRINGIFY(matcher),           \
-                                                  resultDisposition);                                                  \
-    if (catchAssertionHandler.allowThrows())                                                                           \
-      try {                                                                                                            \
-        static_cast<void>(__VA_ARGS__);                                                                                \
-        catchAssertionHandler.handleUnexpectedExceptionNotThrown();                                                    \
-      } catch (exceptionType const &ex) {                                                                              \
-        catchAssertionHandler.handleExpr(Catch::makeMatchExpr(ex, matcher, #matcher));                                 \
-      } catch (...) {                                                                                                  \
-        catchAssertionHandler.handleUnexpectedInflightException();                                                     \
-      }                                                                                                                \
-    else                                                                                                               \
-      catchAssertionHandler.handleThrowingCallSkipped();                                                               \
-    INTERNAL_CATCH_REACT(catchAssertionHandler)                                                                        \
-  } while (false)
-
-// end catch_capture_matchers.h
-#endif
-
-// These files are included here so the single_include script doesn't put them
-// in the conditionally compiled sections
-// start catch_test_case_info.h
-
-#include <memory>
-#include <string>
-#include <vector>
-
-#ifdef __clang__
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wpadded"
-#endif
-
-namespace Catch {
-
-struct ITestInvoker;
-
-struct TestCaseInfo {
-  enum SpecialProperties {
-    None        = 0,
-    IsHidden    = 1 << 1,
-    ShouldFail  = 1 << 2,
-    MayFail     = 1 << 3,
-    Throws      = 1 << 4,
-    NonPortable = 1 << 5,
-    Benchmark   = 1 << 6
-  };
-
-  TestCaseInfo(std::string const &_name, std::string const &_className, std::string const &_description,
-               std::vector<std::string> const &_tags, SourceLineInfo const &_lineInfo);
-
-  friend void setTags(TestCaseInfo &testCaseInfo, std::vector<std::string> tags);
-
-  bool isHidden() const;
-  bool throws() const;
-  bool okToFail() const;
-  bool expectedToFail() const;
-
-  std::string tagsAsString() const;
-
-  std::string name;
-  std::string className;
-  std::string description;
-  std::vector<std::string> tags;
-  std::vector<std::string> lcaseTags;
-  SourceLineInfo lineInfo;
-  SpecialProperties properties;
-};
-
-class TestCase : public TestCaseInfo {
-public:
-  TestCase(ITestInvoker *testCase, TestCaseInfo &&info);
-
-  TestCase withName(std::string const &_newName) const;
-
-  void invoke() const;
-
-  TestCaseInfo const &getTestCaseInfo() const;
-
-  bool operator==(TestCase const &other) const;
-  bool operator<(TestCase const &other) const;
-
-private:
-  std::shared_ptr<ITestInvoker> test;
-};
-
-TestCase makeTestCase(ITestInvoker *testCase, std::string const &className, NameAndTags const &nameAndTags,
-                      SourceLineInfo const &lineInfo);
-} // namespace Catch
-
-#ifdef __clang__
-#pragma clang diagnostic pop
-#endif
-
-// end catch_test_case_info.h
-// start catch_interfaces_runner.h
-
-namespace Catch {
-
-struct IRunner {
-  virtual ~IRunner();
-  virtual bool aborting() const = 0;
-};
-} // namespace Catch
-
-// end catch_interfaces_runner.h
-
-#ifdef __OBJC__
-// start catch_objc.hpp
-
-#import <objc/runtime.h>
-
-#include <string>
-
-// NB. Any general catch headers included here must be included
-// in catch.hpp first to make sure they are included by the single
-// header for non obj-usage
-
-///////////////////////////////////////////////////////////////////////////////
-// This protocol is really only here for (self) documenting purposes, since
-// all its methods are optional.
-@protocol OcFixture
-
-@optional
-
-- (void)setUp;
-- (void)tearDown;
-
-@end
-
-namespace Catch {
-
-class OcMethod : public ITestInvoker {
-
-public:
-  OcMethod(Class cls, SEL sel) : m_cls(cls), m_sel(sel) {
-  }
-
-  virtual void invoke() const {
-    id obj = [[m_cls alloc] init];
-
-    performOptionalSelector(obj, @selector(setUp));
-    performOptionalSelector(obj, m_sel);
-    performOptionalSelector(obj, @selector(tearDown));
-
-    arcSafeRelease(obj);
-  }
-
-private:
-  virtual ~OcMethod() {
-  }
-
-  Class m_cls;
-  SEL m_sel;
-};
-
-namespace Detail {
-
-inline std::string getAnnotation(Class cls, std::string const &annotationName, std::string const &testCaseName) {
-  NSString *selStr = [[NSString alloc] initWithFormat:@"Catch_%s_%s", annotationName.c_str(), testCaseName.c_str()];
-  SEL sel          = NSSelectorFromString(selStr);
-  arcSafeRelease(selStr);
-  id value = performOptionalSelector(cls, sel);
-  if (value)
-    return [(NSString *)value UTF8String];
-  return "";
-}
-} // namespace Detail
-
-inline std::size_t registerTestMethods() {
-  std::size_t noTestMethods = 0;
-  int noClasses             = objc_getClassList(nullptr, 0);
-
-  Class *classes = (CATCH_UNSAFE_UNRETAINED Class *)malloc(sizeof(Class) * noClasses);
-  objc_getClassList(classes, noClasses);
-
-  for (int c = 0; c < noClasses; c++) {
-    Class cls = classes[c];
-    {
-      u_int count;
-      Method *methods = class_copyMethodList(cls, &count);
-      for (u_int m = 0; m < count; m++) {
-        SEL selector           = method_getName(methods[m]);
-        std::string methodName = sel_getName(selector);
-        if (startsWith(methodName, "Catch_TestCase_")) {
-          std::string testCaseName = methodName.substr(15);
-          std::string name         = Detail::getAnnotation(cls, "Name", testCaseName);
-          std::string desc         = Detail::getAnnotation(cls, "Description", testCaseName);
-          const char *className    = class_getName(cls);
-
-          getMutableRegistryHub().registerTest(
-              makeTestCase(new OcMethod(cls, selector), className, name.c_str(), desc.c_str(), SourceLineInfo("", 0)));
-          noTestMethods++;
-        }
-      }
-      free(methods);
-    }
-  }
-  return noTestMethods;
-}
-
-#if !defined(CATCH_CONFIG_DISABLE_MATCHERS)
-
-namespace Matchers {
-namespace Impl {
-namespace NSStringMatchers {
-
-struct StringHolder : MatcherBase<NSString *> {
-  StringHolder(NSString *substr) : m_substr([substr copy]) {
-  }
-  StringHolder(StringHolder const &other) : m_substr([other.m_substr copy]) {
-  }
-  StringHolder() {
-    arcSafeRelease(m_substr);
-  }
-
-  bool match(NSString *arg) const override {
-    return false;
-  }
-
-  NSString *CATCH_ARC_STRONG m_substr;
-};
-
-struct Equals : StringHolder {
-  Equals(NSString *substr) : StringHolder(substr) {
-  }
-
-  bool match(NSString *str) const override {
-    return (str != nil || m_substr == nil) && [str isEqualToString:m_substr];
-  }
-
-  std::string describe() const override {
-    return "equals string: " + Catch::Detail::stringify(m_substr);
-  }
-};
-
-struct Contains : StringHolder {
-  Contains(NSString *substr) : StringHolder(substr) {
-  }
-
-  bool match(NSString *str) const {
-    return (str != nil || m_substr == nil) && [str rangeOfString:m_substr].location != NSNotFound;
-  }
-
-  std::string describe() const override {
-    return "contains string: " + Catch::Detail::stringify(m_substr);
-  }
-};
-
-struct StartsWith : StringHolder {
-  StartsWith(NSString *substr) : StringHolder(substr) {
-  }
-
-  bool match(NSString *str) const override {
-    return (str != nil || m_substr == nil) && [str rangeOfString:m_substr].location == 0;
-  }
-
-  std::string describe() const override {
-    return "starts with: " + Catch::Detail::stringify(m_substr);
-  }
-};
-struct EndsWith : StringHolder {
-  EndsWith(NSString *substr) : StringHolder(substr) {
-  }
-
-  bool match(NSString *str) const override {
-    return (str != nil || m_substr == nil) && [str rangeOfString:m_substr].location == [str length] - [m_substr length];
-  }
-
-  std::string describe() const override {
-    return "ends with: " + Catch::Detail::stringify(m_substr);
-  }
-};
-
-} // namespace NSStringMatchers
-} // namespace Impl
-
-inline Impl::NSStringMatchers::Equals Equals(NSString *substr) {
-  return Impl::NSStringMatchers::Equals(substr);
-}
-
-inline Impl::NSStringMatchers::Contains Contains(NSString *substr) {
-  return Impl::NSStringMatchers::Contains(substr);
-}
-
-inline Impl::NSStringMatchers::StartsWith StartsWith(NSString *substr) {
-  return Impl::NSStringMatchers::StartsWith(substr);
-}
-
-inline Impl::NSStringMatchers::EndsWith EndsWith(NSString *substr) {
-  return Impl::NSStringMatchers::EndsWith(substr);
-}
-
-} // namespace Matchers
-
-using namespace Matchers;
-
-#endif // CATCH_CONFIG_DISABLE_MATCHERS
-
-} // namespace Catch
-
-///////////////////////////////////////////////////////////////////////////////
-#define OC_MAKE_UNIQUE_NAME(root, uniqueSuffix) root##uniqueSuffix
-#define OC_TEST_CASE2(name, desc, uniqueSuffix)                                                                        \
-  +(NSString *)OC_MAKE_UNIQUE_NAME(Catch_Name_test_, uniqueSuffix) {                                                   \
-    return @name;                                                                                                      \
-  }                                                                                                                    \
-  +(NSString *)OC_MAKE_UNIQUE_NAME(Catch_Description_test_, uniqueSuffix) {                                            \
-    return @desc;                                                                                                      \
-  }                                                                                                                    \
-  -(void)OC_MAKE_UNIQUE_NAME(Catch_TestCase_test_, uniqueSuffix)
-
-#define OC_TEST_CASE(name, desc) OC_TEST_CASE2(name, desc, __LINE__)
-
-// end catch_objc.hpp
-#endif
-
-#ifdef CATCH_CONFIG_EXTERNAL_INTERFACES
-// start catch_external_interfaces.h
-
-// start catch_reporter_bases.hpp
-
-// start catch_interfaces_reporter.h
-
-// start catch_config.hpp
-
-// start catch_test_spec_parser.h
-
-#ifdef __clang__
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wpadded"
-#endif
-
-// start catch_test_spec.h
-
-#ifdef __clang__
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wpadded"
-#endif
-
-// start catch_wildcard_pattern.h
-
-namespace Catch {
-class WildcardPattern {
-  enum WildcardPosition {
-    NoWildcard         = 0,
-    WildcardAtStart    = 1,
-    WildcardAtEnd      = 2,
-    WildcardAtBothEnds = WildcardAtStart | WildcardAtEnd
-  };
-
-public:
-  WildcardPattern(std::string const &pattern, CaseSensitive::Choice caseSensitivity);
-  virtual ~WildcardPattern() = default;
-  virtual bool matches(std::string const &str) const;
-
-private:
-  std::string adjustCase(std::string const &str) const;
-  CaseSensitive::Choice m_caseSensitivity;
-  WildcardPosition m_wildcard = NoWildcard;
-  std::string m_pattern;
-};
-} // namespace Catch
-
-// end catch_wildcard_pattern.h
-#include <memory>
-#include <string>
-#include <vector>
-
-namespace Catch {
-
-class TestSpec {
-  struct Pattern {
-    virtual ~Pattern();
-    virtual bool matches(TestCaseInfo const &testCase) const = 0;
-  };
-  using PatternPtr = std::shared_ptr<Pattern>;
-
-  class NamePattern : public Pattern {
-  public:
-    NamePattern(std::string const &name);
-    virtual ~NamePattern();
-    virtual bool matches(TestCaseInfo const &testCase) const override;
-
-  private:
-    WildcardPattern m_wildcardPattern;
-  };
-
-  class TagPattern : public Pattern {
-  public:
-    TagPattern(std::string const &tag);
-    virtual ~TagPattern();
-    virtual bool matches(TestCaseInfo const &testCase) const override;
-
-  private:
-    std::string m_tag;
-  };
-
-  class ExcludedPattern : public Pattern {
-  public:
-    ExcludedPattern(PatternPtr const &underlyingPattern);
-    virtual ~ExcludedPattern();
-    virtual bool matches(TestCaseInfo const &testCase) const override;
-
-  private:
-    PatternPtr m_underlyingPattern;
-  };
-
-  struct Filter {
-    std::vector<PatternPtr> m_patterns;
-
-    bool matches(TestCaseInfo const &testCase) const;
-  };
-
-public:
-  bool hasFilters() const;
-  bool matches(TestCaseInfo const &testCase) const;
-
-private:
-  std::vector<Filter> m_filters;
-
-  friend class TestSpecParser;
-};
-} // namespace Catch
-
-#ifdef __clang__
-#pragma clang diagnostic pop
-#endif
-
-// end catch_test_spec.h
-// start catch_interfaces_tag_alias_registry.h
-
-#include <string>
-
-namespace Catch {
-
-struct TagAlias;
-
-struct ITagAliasRegistry {
-  virtual ~ITagAliasRegistry();
-  // Nullptr if not present
-  virtual TagAlias const *find(std::string const &alias) const                   = 0;
-  virtual std::string expandAliases(std::string const &unexpandedTestSpec) const = 0;
-
-  static ITagAliasRegistry const &get();
-};
-
-} // end namespace Catch
-
-// end catch_interfaces_tag_alias_registry.h
-namespace Catch {
-
-class TestSpecParser {
-  enum Mode { None, Name, QuotedName, Tag, EscapedName };
-  Mode m_mode         = None;
-  bool m_exclusion    = false;
-  std::size_t m_start = std::string::npos, m_pos = 0;
-  std::string m_arg;
-  std::vector<std::size_t> m_escapeChars;
-  TestSpec::Filter m_currentFilter;
-  TestSpec m_testSpec;
-  ITagAliasRegistry const *m_tagAliases = nullptr;
-
-public:
-  TestSpecParser(ITagAliasRegistry const &tagAliases);
-
-  TestSpecParser &parse(std::string const &arg);
-  TestSpec testSpec();
-
-private:
-  void visitChar(char c);
-  void startNewMode(Mode mode, std::size_t start);
-  void escape();
-  std::string subString() const;
-
-  template <typename T> void addPattern() {
-    std::string token = subString();
-    for (std::size_t i = 0; i < m_escapeChars.size(); ++i)
-      token = token.substr(0, m_escapeChars[i] - m_start - i) + token.substr(m_escapeChars[i] - m_start - i + 1);
-    m_escapeChars.clear();
-    if (startsWith(token, "exclude:")) {
-      m_exclusion = true;
-      token       = token.substr(8);
-    }
-    if (!token.empty()) {
-      TestSpec::PatternPtr pattern = std::make_shared<T>(token);
-      if (m_exclusion)
-        pattern = std::make_shared<TestSpec::ExcludedPattern>(pattern);
-      m_currentFilter.m_patterns.push_back(pattern);
-    }
-    m_exclusion = false;
-    m_mode      = None;
-  }
-
-  void addFilter();
-};
-TestSpec parseTestSpec(std::string const &arg);
-
-} // namespace Catch
-
-#ifdef __clang__
-#pragma clang diagnostic pop
-#endif
-
-// end catch_test_spec_parser.h
-// start catch_interfaces_config.h
-
-#include <iosfwd>
-#include <memory>
-#include <string>
-#include <vector>
-
-namespace Catch {
-
-enum class Verbosity { Quiet = 0, Normal, High };
-
-struct WarnAbout {
-  enum What { Nothing = 0x00, NoAssertions = 0x01, NoTests = 0x02 };
-};
-
-struct ShowDurations {
-  enum OrNot { DefaultForReporter, Always, Never };
-};
-struct RunTests {
-  enum InWhatOrder { InDeclarationOrder, InLexicographicalOrder, InRandomOrder };
-};
-struct UseColour {
-  enum YesOrNo { Auto, Yes, No };
-};
-struct WaitForKeypress {
-  enum When { Never, BeforeStart = 1, BeforeExit = 2, BeforeStartAndExit = BeforeStart | BeforeExit };
-};
-
-class TestSpec;
-
-struct IConfig : NonCopyable {
-
-  virtual ~IConfig();
-
-  virtual bool allowThrows() const                                 = 0;
-  virtual std::ostream &stream() const                             = 0;
-  virtual std::string name() const                                 = 0;
-  virtual bool includeSuccessfulResults() const                    = 0;
-  virtual bool shouldDebugBreak() const                            = 0;
-  virtual bool warnAboutMissingAssertions() const                  = 0;
-  virtual bool warnAboutNoTests() const                            = 0;
-  virtual int abortAfter() const                                   = 0;
-  virtual bool showInvisibles() const                              = 0;
-  virtual ShowDurations::OrNot showDurations() const               = 0;
-  virtual TestSpec const &testSpec() const                         = 0;
-  virtual bool hasTestFilters() const                              = 0;
-  virtual RunTests::InWhatOrder runOrder() const                   = 0;
-  virtual unsigned int rngSeed() const                             = 0;
-  virtual int benchmarkResolutionMultiple() const                  = 0;
-  virtual UseColour::YesOrNo useColour() const                     = 0;
-  virtual std::vector<std::string> const &getSectionsToRun() const = 0;
-  virtual Verbosity verbosity() const                              = 0;
-};
-
-using IConfigPtr = std::shared_ptr<IConfig const>;
-} // namespace Catch
-
-// end catch_interfaces_config.h
-// Libstdc++ doesn't like incomplete classes for unique_ptr
-
-#include <memory>
-#include <string>
-#include <vector>
-
-#ifndef CATCH_CONFIG_CONSOLE_WIDTH
-#define CATCH_CONFIG_CONSOLE_WIDTH 80
-#endif
-
-namespace Catch {
-
-struct IStream;
-
-struct ConfigData {
-  bool listTests         = false;
-  bool listTags          = false;
-  bool listReporters     = false;
-  bool listTestNamesOnly = false;
-
-  bool showSuccessfulTests = false;
-  bool shouldDebugBreak    = false;
-  bool noThrow             = false;
-  bool showHelp            = false;
-  bool showInvisibles      = false;
-  bool filenamesAsTags     = false;
-  bool libIdentify         = false;
-
-  int abortAfter                  = -1;
-  unsigned int rngSeed            = 0;
-  int benchmarkResolutionMultiple = 100;
-
-  Verbosity verbosity                   = Verbosity::Normal;
-  WarnAbout::What warnings              = WarnAbout::Nothing;
-  ShowDurations::OrNot showDurations    = ShowDurations::DefaultForReporter;
-  RunTests::InWhatOrder runOrder        = RunTests::InDeclarationOrder;
-  UseColour::YesOrNo useColour          = UseColour::Auto;
-  WaitForKeypress::When waitForKeypress = WaitForKeypress::Never;
-
-  std::string outputFilename;
-  std::string name;
-  std::string processName;
-#ifndef CATCH_CONFIG_DEFAULT_REPORTER
-#define CATCH_CONFIG_DEFAULT_REPORTER "console"
-#endif
-  std::string reporterName = CATCH_CONFIG_DEFAULT_REPORTER;
-#undef CATCH_CONFIG_DEFAULT_REPORTER
-
-  std::vector<std::string> testsOrTags;
-  std::vector<std::string> sectionsToRun;
-};
-
-class Config : public IConfig {
-public:
-  Config() = default;
-  Config(ConfigData const &data);
-  virtual ~Config() = default;
-
-  std::string const &getFilename() const;
-
-  bool listTests() const;
-  bool listTestNamesOnly() const;
-  bool listTags() const;
-  bool listReporters() const;
-
-  std::string getProcessName() const;
-  std::string const &getReporterName() const;
-
-  std::vector<std::string> const &getTestsOrTags() const;
-  std::vector<std::string> const &getSectionsToRun() const override;
-
-  virtual TestSpec const &testSpec() const override;
-  bool hasTestFilters() const override;
-
-  bool showHelp() const;
-
-  // IConfig interface
-  bool allowThrows() const override;
-  std::ostream &stream() const override;
-  std::string name() const override;
-  bool includeSuccessfulResults() const override;
-  bool warnAboutMissingAssertions() const override;
-  bool warnAboutNoTests() const override;
-  ShowDurations::OrNot showDurations() const override;
-  RunTests::InWhatOrder runOrder() const override;
-  unsigned int rngSeed() const override;
-  int benchmarkResolutionMultiple() const override;
-  UseColour::YesOrNo useColour() const override;
-  bool shouldDebugBreak() const override;
-  int abortAfter() const override;
-  bool showInvisibles() const override;
-  Verbosity verbosity() const override;
-
-private:
-  IStream const *openStream();
-  ConfigData m_data;
-
-  std::unique_ptr<IStream const> m_stream;
-  TestSpec m_testSpec;
-  bool m_hasTestFilters = false;
-};
-
-} // end namespace Catch
-
-// end catch_config.hpp
-// start catch_assertionresult.h
-
-#include <string>
-
-namespace Catch {
-
-struct AssertionResultData {
-  AssertionResultData() = delete;
-
-  AssertionResultData(ResultWas::OfType _resultType, LazyExpression const &_lazyExpression);
-
-  std::string message;
-  mutable std::string reconstructedExpression;
-  LazyExpression lazyExpression;
-  ResultWas::OfType resultType;
-
-  std::string reconstructExpression() const;
-};
-
-class AssertionResult {
-public:
-  AssertionResult() = delete;
-  AssertionResult(AssertionInfo const &info, AssertionResultData const &data);
-
-  bool isOk() const;
-  bool succeeded() const;
-  ResultWas::OfType getResultType() const;
-  bool hasExpression() const;
-  bool hasMessage() const;
-  std::string getExpression() const;
-  std::string getExpressionInMacro() const;
-  bool hasExpandedExpression() const;
-  std::string getExpandedExpression() const;
-  std::string getMessage() const;
-  SourceLineInfo getSourceInfo() const;
-  StringRef getTestMacroName() const;
-
-  //protected:
-  AssertionInfo m_info;
-  AssertionResultData m_resultData;
-};
-
-} // end namespace Catch
-
-// end catch_assertionresult.h
-// start catch_option.hpp
-
-namespace Catch {
-
-// An optional type
-template <typename T> class Option {
-public:
-  Option() : nullableValue(nullptr) {
-  }
-  Option(T const &_value) : nullableValue(new (storage) T(_value)) {
-  }
-  Option(Option const &_other) : nullableValue(_other ? new (storage) T(*_other) : nullptr) {
-  }
-
-  ~Option() {
-    reset();
-  }
-
-  Option &operator=(Option const &_other) {
-    if (&_other != this) {
-      reset();
-      if (_other)
-        nullableValue = new (storage) T(*_other);
-    }
-    return *this;
-  }
-  Option &operator=(T const &_value) {
-    reset();
-    nullableValue = new (storage) T(_value);
-    return *this;
-  }
-
-  void reset() {
-    if (nullableValue)
-      nullableValue->~T();
-    nullableValue = nullptr;
-  }
-
-  T &operator*() {
-    return *nullableValue;
-  }
-  T const &operator*() const {
-    return *nullableValue;
-  }
-  T *operator->() {
-    return nullableValue;
-  }
-  const T *operator->() const {
-    return nullableValue;
-  }
-
-  T valueOr(T const &defaultValue) const {
-    return nullableValue ? *nullableValue : defaultValue;
-  }
-
-  bool some() const {
-    return nullableValue != nullptr;
-  }
-  bool none() const {
-    return nullableValue == nullptr;
-  }
-
-  bool operator!() const {
-    return nullableValue == nullptr;
-  }
-  explicit operator bool() const {
-    return some();
-  }
-
-private:
-  T *nullableValue;
-  alignas(alignof(T)) char storage[sizeof(T)];
-};
-
-} // end namespace Catch
-
-// end catch_option.hpp
-#include <iosfwd>
-#include <map>
-#include <memory>
-#include <set>
-#include <string>
-
-namespace Catch {
-
-struct ReporterConfig {
-  explicit ReporterConfig(IConfigPtr const &_fullConfig);
-
-  ReporterConfig(IConfigPtr const &_fullConfig, std::ostream &_stream);
-
-  std::ostream &stream() const;
-  IConfigPtr fullConfig() const;
-
-private:
-  std::ostream *m_stream;
-  IConfigPtr m_fullConfig;
-};
-
-struct ReporterPreferences {
-  bool shouldRedirectStdOut = false;
-};
-
-template <typename T> struct LazyStat : Option<T> {
-  LazyStat &operator=(T const &_value) {
-    Option<T>::operator=(_value);
-    used               = false;
-    return *this;
-  }
-  void reset() {
-    Option<T>::reset();
-    used = false;
-  }
-  bool used = false;
-};
-
-struct TestRunInfo {
-  TestRunInfo(std::string const &_name);
-  std::string name;
-};
-struct GroupInfo {
-  GroupInfo(std::string const &_name, std::size_t _groupIndex, std::size_t _groupsCount);
-
-  std::string name;
-  std::size_t groupIndex;
-  std::size_t groupsCounts;
-};
-
-struct AssertionStats {
-  AssertionStats(AssertionResult const &_assertionResult, std::vector<MessageInfo> const &_infoMessages,
-                 Totals const &_totals);
-
-  AssertionStats(AssertionStats const &) = default;
-  AssertionStats(AssertionStats &&)      = default;
-  AssertionStats &operator=(AssertionStats const &) = default;
-  AssertionStats &operator=(AssertionStats &&) = default;
-  virtual ~AssertionStats();
-
-  AssertionResult assertionResult;
-  std::vector<MessageInfo> infoMessages;
-  Totals totals;
-};
-
-struct SectionStats {
-  SectionStats(SectionInfo const &_sectionInfo, Counts const &_assertions, double _durationInSeconds,
-               bool _missingAssertions);
-  SectionStats(SectionStats const &) = default;
-  SectionStats(SectionStats &&)      = default;
-  SectionStats &operator=(SectionStats const &) = default;
-  SectionStats &operator=(SectionStats &&) = default;
-  virtual ~SectionStats();
-
-  SectionInfo sectionInfo;
-  Counts assertions;
-  double durationInSeconds;
-  bool missingAssertions;
-};
-
-struct TestCaseStats {
-  TestCaseStats(TestCaseInfo const &_testInfo, Totals const &_totals, std::string const &_stdOut,
-                std::string const &_stdErr, bool _aborting);
-
-  TestCaseStats(TestCaseStats const &) = default;
-  TestCaseStats(TestCaseStats &&)      = default;
-  TestCaseStats &operator=(TestCaseStats const &) = default;
-  TestCaseStats &operator=(TestCaseStats &&) = default;
-  virtual ~TestCaseStats();
-
-  TestCaseInfo testInfo;
-  Totals totals;
-  std::string stdOut;
-  std::string stdErr;
-  bool aborting;
-};
-
-struct TestGroupStats {
-  TestGroupStats(GroupInfo const &_groupInfo, Totals const &_totals, bool _aborting);
-  TestGroupStats(GroupInfo const &_groupInfo);
-
-  TestGroupStats(TestGroupStats const &) = default;
-  TestGroupStats(TestGroupStats &&)      = default;
-  TestGroupStats &operator=(TestGroupStats const &) = default;
-  TestGroupStats &operator=(TestGroupStats &&) = default;
-  virtual ~TestGroupStats();
-
-  GroupInfo groupInfo;
-  Totals totals;
-  bool aborting;
-};
-
-struct TestRunStats {
-  TestRunStats(TestRunInfo const &_runInfo, Totals const &_totals, bool _aborting);
-
-  TestRunStats(TestRunStats const &) = default;
-  TestRunStats(TestRunStats &&)      = default;
-  TestRunStats &operator=(TestRunStats const &) = default;
-  TestRunStats &operator=(TestRunStats &&) = default;
-  virtual ~TestRunStats();
-
-  TestRunInfo runInfo;
-  Totals totals;
-  bool aborting;
-};
-
-struct BenchmarkInfo {
-  std::string name;
-};
-struct BenchmarkStats {
-  BenchmarkInfo info;
-  std::size_t iterations;
-  uint64_t elapsedTimeInNanoseconds;
-};
-
-struct IStreamingReporter {
-  virtual ~IStreamingReporter() = default;
-
-  // Implementing class must also provide the following static methods:
-  // static std::string getDescription();
-  // static std::set<Verbosity> getSupportedVerbosities()
-
-  virtual ReporterPreferences getPreferences() const = 0;
-
-  virtual void noMatchingTestCases(std::string const &spec) = 0;
-
-  virtual void testRunStarting(TestRunInfo const &testRunInfo) = 0;
-  virtual void testGroupStarting(GroupInfo const &groupInfo)   = 0;
-
-  virtual void testCaseStarting(TestCaseInfo const &testInfo)  = 0;
-  virtual void sectionStarting(SectionInfo const &sectionInfo) = 0;
-
-  // *** experimental ***
-  virtual void benchmarkStarting(BenchmarkInfo const &) {
-  }
-
-  virtual void assertionStarting(AssertionInfo const &assertionInfo) = 0;
-
-  // The return value indicates if the messages buffer should be cleared:
-  virtual bool assertionEnded(AssertionStats const &assertionStats) = 0;
-
-  // *** experimental ***
-  virtual void benchmarkEnded(BenchmarkStats const &) {
-  }
-
-  virtual void sectionEnded(SectionStats const &sectionStats)       = 0;
-  virtual void testCaseEnded(TestCaseStats const &testCaseStats)    = 0;
-  virtual void testGroupEnded(TestGroupStats const &testGroupStats) = 0;
-  virtual void testRunEnded(TestRunStats const &testRunStats)       = 0;
-
-  virtual void skipTest(TestCaseInfo const &testInfo) = 0;
-
-  // Default empty implementation provided
-  virtual void fatalErrorEncountered(StringRef name);
-
-  virtual bool isMulti() const;
-};
-using IStreamingReporterPtr = std::unique_ptr<IStreamingReporter>;
-
-struct IReporterFactory {
-  virtual ~IReporterFactory();
-  virtual IStreamingReporterPtr create(ReporterConfig const &config) const = 0;
-  virtual std::string getDescription() const                               = 0;
-};
-using IReporterFactoryPtr = std::shared_ptr<IReporterFactory>;
-
-struct IReporterRegistry {
-  using FactoryMap = std::map<std::string, IReporterFactoryPtr>;
-  using Listeners  = std::vector<IReporterFactoryPtr>;
-
-  virtual ~IReporterRegistry();
-  virtual IStreamingReporterPtr create(std::string const &name, IConfigPtr const &config) const = 0;
-  virtual FactoryMap const &getFactories() const                                                = 0;
-  virtual Listeners const &getListeners() const                                                 = 0;
-};
-
-} // end namespace Catch
-
-// end catch_interfaces_reporter.h
-#include <algorithm>
-#include <cassert>
-#include <cfloat>
-#include <cstdio>
-#include <cstring>
-#include <memory>
-#include <ostream>
-
-namespace Catch {
-void prepareExpandedExpression(AssertionResult &result);
-
-// Returns double formatted as %.3f (format expected on output)
-std::string getFormattedDuration(double duration);
-
-template <typename DerivedT> struct StreamingReporterBase : IStreamingReporter {
-
-  StreamingReporterBase(ReporterConfig const &_config) : m_config(_config.fullConfig()), stream(_config.stream()) {
-    m_reporterPrefs.shouldRedirectStdOut = false;
-    if (!DerivedT::getSupportedVerbosities().count(m_config->verbosity()))
-      throw std::domain_error("Verbosity level not supported by this reporter");
-  }
-
-  ReporterPreferences getPreferences() const override {
-    return m_reporterPrefs;
-  }
-
-  static std::set<Verbosity> getSupportedVerbosities() {
-    return {Verbosity::Normal};
-  }
-
-  ~StreamingReporterBase() override = default;
-
-  void noMatchingTestCases(std::string const &) override {
-  }
-
-  void testRunStarting(TestRunInfo const &_testRunInfo) override {
-    currentTestRunInfo = _testRunInfo;
-  }
-  void testGroupStarting(GroupInfo const &_groupInfo) override {
-    currentGroupInfo = _groupInfo;
-  }
-
-  void testCaseStarting(TestCaseInfo const &_testInfo) override {
-    currentTestCaseInfo = _testInfo;
-  }
-  void sectionStarting(SectionInfo const &_sectionInfo) override {
-    m_sectionStack.push_back(_sectionInfo);
-  }
-
-  void sectionEnded(SectionStats const & /* _sectionStats */) override {
-    m_sectionStack.pop_back();
-  }
-  void testCaseEnded(TestCaseStats const & /* _testCaseStats */) override {
-    currentTestCaseInfo.reset();
-  }
-  void testGroupEnded(TestGroupStats const & /* _testGroupStats */) override {
-    currentGroupInfo.reset();
-  }
-  void testRunEnded(TestRunStats const & /* _testRunStats */) override {
-    currentTestCaseInfo.reset();
-    currentGroupInfo.reset();
-    currentTestRunInfo.reset();
-  }
-
-  void skipTest(TestCaseInfo const &) override {
-    // Don't do anything with this by default.
-    // It can optionally be overridden in the derived class.
-  }
-
-  IConfigPtr m_config;
-  std::ostream &stream;
-
-  LazyStat<TestRunInfo> currentTestRunInfo;
-  LazyStat<GroupInfo> currentGroupInfo;
-  LazyStat<TestCaseInfo> currentTestCaseInfo;
-
-  std::vector<SectionInfo> m_sectionStack;
-  ReporterPreferences m_reporterPrefs;
-};
-
-template <typename DerivedT> struct CumulativeReporterBase : IStreamingReporter {
-  template <typename T, typename ChildNodeT> struct Node {
-    explicit Node(T const &_value) : value(_value) {
-    }
-    virtual ~Node() {
-    }
-
-    using ChildNodes = std::vector<std::shared_ptr<ChildNodeT>>;
-    T value;
-    ChildNodes children;
-  };
-  struct SectionNode {
-    explicit SectionNode(SectionStats const &_stats) : stats(_stats) {
-    }
-    virtual ~SectionNode() = default;
-
-    bool operator==(SectionNode const &other) const {
-      return stats.sectionInfo.lineInfo == other.stats.sectionInfo.lineInfo;
-    }
-    bool operator==(std::shared_ptr<SectionNode> const &other) const {
-      return operator==(*other);
-    }
-
-    SectionStats stats;
-    using ChildSections = std::vector<std::shared_ptr<SectionNode>>;
-    using Assertions    = std::vector<AssertionStats>;
-    ChildSections childSections;
-    Assertions assertions;
-    std::string stdOut;
-    std::string stdErr;
-  };
-
-  struct BySectionInfo {
-    BySectionInfo(SectionInfo const &other) : m_other(other) {
-    }
-    BySectionInfo(BySectionInfo const &other) : m_other(other.m_other) {
-    }
-    bool operator()(std::shared_ptr<SectionNode> const &node) const {
-      return ((node->stats.sectionInfo.name == m_other.name) && (node->stats.sectionInfo.lineInfo == m_other.lineInfo));
-    }
-    void operator=(BySectionInfo const &) = delete;
-
-  private:
-    SectionInfo const &m_other;
-  };
-
-  using TestCaseNode  = Node<TestCaseStats, SectionNode>;
-  using TestGroupNode = Node<TestGroupStats, TestCaseNode>;
-  using TestRunNode   = Node<TestRunStats, TestGroupNode>;
-
-  CumulativeReporterBase(ReporterConfig const &_config) : m_config(_config.fullConfig()), stream(_config.stream()) {
-    m_reporterPrefs.shouldRedirectStdOut = false;
-    if (!DerivedT::getSupportedVerbosities().count(m_config->verbosity()))
-      throw std::domain_error("Verbosity level not supported by this reporter");
-  }
-  ~CumulativeReporterBase() override = default;
-
-  ReporterPreferences getPreferences() const override {
-    return m_reporterPrefs;
-  }
-
-  static std::set<Verbosity> getSupportedVerbosities() {
-    return {Verbosity::Normal};
-  }
-
-  void testRunStarting(TestRunInfo const &) override {
-  }
-  void testGroupStarting(GroupInfo const &) override {
-  }
-
-  void testCaseStarting(TestCaseInfo const &) override {
-  }
-
-  void sectionStarting(SectionInfo const &sectionInfo) override {
-    SectionStats incompleteStats(sectionInfo, Counts(), 0, false);
-    std::shared_ptr<SectionNode> node;
-    if (m_sectionStack.empty()) {
-      if (!m_rootSection)
-        m_rootSection = std::make_shared<SectionNode>(incompleteStats);
-      node = m_rootSection;
-    } else {
-      SectionNode &parentNode = *m_sectionStack.back();
-      auto it =
-          std::find_if(parentNode.childSections.begin(), parentNode.childSections.end(), BySectionInfo(sectionInfo));
-      if (it == parentNode.childSections.end()) {
-        node = std::make_shared<SectionNode>(incompleteStats);
-        parentNode.childSections.push_back(node);
-      } else
-        node = *it;
-    }
-    m_sectionStack.push_back(node);
-    m_deepestSection = std::move(node);
-  }
-
-  void assertionStarting(AssertionInfo const &) override {
-  }
-
-  bool assertionEnded(AssertionStats const &assertionStats) override {
-    assert(!m_sectionStack.empty());
-    // AssertionResult holds a pointer to a temporary DecomposedExpression,
-    // which getExpandedExpression() calls to build the expression string.
-    // Our section stack copy of the assertionResult will likely outlive the
-    // temporary, so it must be expanded or discarded now to avoid calling
-    // a destroyed object later.
-    prepareExpandedExpression(const_cast<AssertionResult &>(assertionStats.assertionResult));
-    SectionNode &sectionNode = *m_sectionStack.back();
-    sectionNode.assertions.push_back(assertionStats);
-    return true;
-  }
-  void sectionEnded(SectionStats const &sectionStats) override {
-    assert(!m_sectionStack.empty());
-    SectionNode &node = *m_sectionStack.back();
-    node.stats        = sectionStats;
-    m_sectionStack.pop_back();
-  }
-  void testCaseEnded(TestCaseStats const &testCaseStats) override {
-    auto node = std::make_shared<TestCaseNode>(testCaseStats);
-    assert(m_sectionStack.size() == 0);
-    node->children.push_back(m_rootSection);
-    m_testCases.push_back(node);
-    m_rootSection.reset();
-
-    assert(m_deepestSection);
-    m_deepestSection->stdOut = testCaseStats.stdOut;
-    m_deepestSection->stdErr = testCaseStats.stdErr;
-  }
-  void testGroupEnded(TestGroupStats const &testGroupStats) override {
-    auto node = std::make_shared<TestGroupNode>(testGroupStats);
-    node->children.swap(m_testCases);
-    m_testGroups.push_back(node);
-  }
-  void testRunEnded(TestRunStats const &testRunStats) override {
-    auto node = std::make_shared<TestRunNode>(testRunStats);
-    node->children.swap(m_testGroups);
-    m_testRuns.push_back(node);
-    testRunEndedCumulative();
-  }
-  virtual void testRunEndedCumulative() = 0;
-
-  void skipTest(TestCaseInfo const &) override {
-  }
-
-  IConfigPtr m_config;
-  std::ostream &stream;
-  std::vector<AssertionStats> m_assertions;
-  std::vector<std::vector<std::shared_ptr<SectionNode>>> m_sections;
-  std::vector<std::shared_ptr<TestCaseNode>> m_testCases;
-  std::vector<std::shared_ptr<TestGroupNode>> m_testGroups;
-
-  std::vector<std::shared_ptr<TestRunNode>> m_testRuns;
-
-  std::shared_ptr<SectionNode> m_rootSection;
-  std::shared_ptr<SectionNode> m_deepestSection;
-  std::vector<std::shared_ptr<SectionNode>> m_sectionStack;
-  ReporterPreferences m_reporterPrefs;
-};
-
-template <char C> char const *getLineOfChars() {
-  static char line[CATCH_CONFIG_CONSOLE_WIDTH] = {0};
-  if (!*line) {
-    std::memset(line, C, CATCH_CONFIG_CONSOLE_WIDTH - 1);
-    line[CATCH_CONFIG_CONSOLE_WIDTH - 1] = 0;
-  }
-  return line;
-}
-
-struct TestEventListenerBase : StreamingReporterBase<TestEventListenerBase> {
-  TestEventListenerBase(ReporterConfig const &_config);
-
-  void assertionStarting(AssertionInfo const &) override;
-  bool assertionEnded(AssertionStats const &) override;
-};
-
-} // end namespace Catch
-
-// end catch_reporter_bases.hpp
-// start catch_console_colour.h
-
-namespace Catch {
-
-struct Colour {
-  enum Code {
-    None = 0,
-
-    White,
-    Red,
-    Green,
-    Blue,
-    Cyan,
-    Yellow,
-    Grey,
-
-    Bright = 0x10,
-
-    BrightRed    = Bright | Red,
-    BrightGreen  = Bright | Green,
-    LightGrey    = Bright | Grey,
-    BrightWhite  = Bright | White,
-    BrightYellow = Bright | Yellow,
-
-    // By intention
-    FileName              = LightGrey,
-    Warning               = BrightYellow,
-    ResultError           = BrightRed,
-    ResultSuccess         = BrightGreen,
-    ResultExpectedFailure = Warning,
-
-    Error   = BrightRed,
-    Success = Green,
-
-    OriginalExpression      = Cyan,
-    ReconstructedExpression = BrightYellow,
-
-    SecondaryText = LightGrey,
-    Headers       = White
-  };
-
-  // Use constructed object for RAII guard
-  Colour(Code _colourCode);
-  Colour(Colour &&other) noexcept;
-  Colour &operator=(Colour &&other) noexcept;
-  ~Colour();
-
-  // Use static method for one-shot changes
-  static void use(Code _colourCode);
-
-private:
-  bool m_moved = false;
-};
-
-std::ostream &operator<<(std::ostream &os, Colour const &);
-
-} // end namespace Catch
-
-// end catch_console_colour.h
-// start catch_reporter_registrars.hpp
-
-namespace Catch {
-
-template <typename T> class ReporterRegistrar {
-
-  class ReporterFactory : public IReporterFactory {
-
-    virtual IStreamingReporterPtr create(ReporterConfig const &config) const override {
-      return std::unique_ptr<T>(new T(config));
-    }
-
-    virtual std::string getDescription() const override {
-      return T::getDescription();
-    }
-  };
-
-public:
-  explicit ReporterRegistrar(std::string const &name) {
-    getMutableRegistryHub().registerReporter(name, std::make_shared<ReporterFactory>());
-  }
-};
-
-template <typename T> class ListenerRegistrar {
-
-  class ListenerFactory : public IReporterFactory {
-
-    virtual IStreamingReporterPtr create(ReporterConfig const &config) const override {
-      return std::unique_ptr<T>(new T(config));
-    }
-    virtual std::string getDescription() const override {
-      return std::string();
-    }
-  };
-
-public:
-  ListenerRegistrar() {
-    getMutableRegistryHub().registerListener(std::make_shared<ListenerFactory>());
-  }
-};
-} // namespace Catch
-
-#if !defined(CATCH_CONFIG_DISABLE)
-
-#define CATCH_REGISTER_REPORTER(name, reporterType)                                                                    \
-  CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS                                                                             \
-  namespace {                                                                                                          \
-  Catch::ReporterRegistrar<reporterType> catch_internal_RegistrarFor##reporterType(name);                              \
-  }                                                                                                                    \
-  CATCH_INTERNAL_UNSUPPRESS_GLOBALS_WARNINGS
-
-#define CATCH_REGISTER_LISTENER(listenerType)                                                                          \
-  CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS                                                                             \
-  namespace {                                                                                                          \
-  Catch::ListenerRegistrar<listenerType> catch_internal_RegistrarFor##listenerType;                                    \
-  }                                                                                                                    \
-  CATCH_INTERNAL_SUPPRESS_GLOBALS_WARNINGS
-#else // CATCH_CONFIG_DISABLE
-
-#define CATCH_REGISTER_REPORTER(name, reporterType)
-#define CATCH_REGISTER_LISTENER(listenerType)
-
-#endif // CATCH_CONFIG_DISABLE
-
-// end catch_reporter_registrars.hpp
-// Allow users to base their work off existing reporters
-// start catch_reporter_compact.h
-
-namespace Catch {
-
-struct CompactReporter : StreamingReporterBase<CompactReporter> {
-
-  using StreamingReporterBase::StreamingReporterBase;
-
-  ~CompactReporter() override;
-
-  static std::string getDescription();
-
-  ReporterPreferences getPreferences() const override;
-
-  void noMatchingTestCases(std::string const &spec) override;
-
-  void assertionStarting(AssertionInfo const &) override;
-
-  bool assertionEnded(AssertionStats const &_assertionStats) override;
-
-  void sectionEnded(SectionStats const &_sectionStats) override;
-
-  void testRunEnded(TestRunStats const &_testRunStats) override;
-};
-
-} // end namespace Catch
-
-// end catch_reporter_compact.h
-// start catch_reporter_console.h
-
-#if defined(_MSC_VER)
-#pragma warning(push)
-#pragma warning(                                                                                                       \
-    disable : 4061) // Not all labels are EXPLICITLY handled in switch                                     \
-                                // Note that 4062 (not all labels are handled                                          \
-                                // and default is missing) is enabled
-#endif
-
-namespace Catch {
-// Fwd decls
-struct SummaryColumn;
-class TablePrinter;
-
-struct ConsoleReporter : StreamingReporterBase<ConsoleReporter> {
-  std::unique_ptr<TablePrinter> m_tablePrinter;
-
-  ConsoleReporter(ReporterConfig const &config);
-  ~ConsoleReporter() override;
-  static std::string getDescription();
-
-  void noMatchingTestCases(std::string const &spec) override;
-
-  void assertionStarting(AssertionInfo const &) override;
-
-  bool assertionEnded(AssertionStats const &_assertionStats) override;
-
-  void sectionStarting(SectionInfo const &_sectionInfo) override;
-  void sectionEnded(SectionStats const &_sectionStats) override;
-
-  void benchmarkStarting(BenchmarkInfo const &info) override;
-  void benchmarkEnded(BenchmarkStats const &stats) override;
-
-  void testCaseEnded(TestCaseStats const &_testCaseStats) override;
-  void testGroupEnded(TestGroupStats const &_testGroupStats) override;
-  void testRunEnded(TestRunStats const &_testRunStats) override;
-
-private:
-  void lazyPrint();
-
-  void lazyPrintWithoutClosingBenchmarkTable();
-  void lazyPrintRunInfo();
-  void lazyPrintGroupInfo();
-  void printTestCaseAndSectionHeader();
-
-  void printClosedHeader(std::string const &_name);
-  void printOpenHeader(std::string const &_name);
-
-  // if string has a : in first line will set indent to follow it on
-  // subsequent lines
-  void printHeaderString(std::string const &_string, std::size_t indent = 0);
-
-  void printTotals(Totals const &totals);
-  void printSummaryRow(std::string const &label, std::vector<SummaryColumn> const &cols, std::size_t row);
-
-  void printTotalsDivider(Totals const &totals);
-  void printSummaryDivider();
-
-private:
-  bool m_headerPrinted = false;
-};
-
-} // end namespace Catch
-
-#if defined(_MSC_VER)
-#pragma warning(pop)
-#endif
-
-// end catch_reporter_console.h
-// start catch_reporter_junit.h
-
-// start catch_xmlwriter.h
-
-#include <vector>
-
-namespace Catch {
-
-class XmlEncode {
-public:
-  enum ForWhat { ForTextNodes, ForAttributes };
-
-  XmlEncode(std::string const &str, ForWhat forWhat = ForTextNodes);
-
-  void encodeTo(std::ostream &os) const;
-
-  friend std::ostream &operator<<(std::ostream &os, XmlEncode const &xmlEncode);
-
-private:
-  std::string m_str;
-  ForWhat m_forWhat;
-};
-
-class XmlWriter {
-public:
-  class ScopedElement {
-  public:
-    ScopedElement(XmlWriter *writer);
-
-    ScopedElement(ScopedElement &&other) noexcept;
-    ScopedElement &operator=(ScopedElement &&other) noexcept;
-
-    ~ScopedElement();
-
-    ScopedElement &writeText(std::string const &text, bool indent = true);
-
-    template <typename T> ScopedElement &writeAttribute(std::string const &name, T const &attribute) {
-      m_writer->writeAttribute(name, attribute);
-      return *this;
-    }
-
-  private:
-    mutable XmlWriter *m_writer = nullptr;
-  };
-
-  XmlWriter(std::ostream &os = Catch::cout());
-  ~XmlWriter();
-
-  XmlWriter(XmlWriter const &) = delete;
-  XmlWriter &operator=(XmlWriter const &) = delete;
-
-  XmlWriter &startElement(std::string const &name);
-
-  ScopedElement scopedElement(std::string const &name);
-
-  XmlWriter &endElement();
-
-  XmlWriter &writeAttribute(std::string const &name, std::string const &attribute);
-
-  XmlWriter &writeAttribute(std::string const &name, bool attribute);
-
-  template <typename T> XmlWriter &writeAttribute(std::string const &name, T const &attribute) {
-    ReusableStringStream rss;
-    rss << attribute;
-    return writeAttribute(name, rss.str());
-  }
-
-  XmlWriter &writeText(std::string const &text, bool indent = true);
-
-  XmlWriter &writeComment(std::string const &text);
-
-  void writeStylesheetRef(std::string const &url);
-
-  XmlWriter &writeBlankLine();
-
-  void ensureTagClosed();
-
-private:
-  void writeDeclaration();
-
-  void newlineIfNecessary();
-
-  bool m_tagIsOpen    = false;
-  bool m_needsNewline = false;
-  std::vector<std::string> m_tags;
-  std::string m_indent;
-  std::ostream &m_os;
-};
-
-} // namespace Catch
-
-// end catch_xmlwriter.h
-namespace Catch {
-
-class JunitReporter : public CumulativeReporterBase<JunitReporter> {
-public:
-  JunitReporter(ReporterConfig const &_config);
-
-  ~JunitReporter() override;
-
-  static std::string getDescription();
-
-  void noMatchingTestCases(std::string const & /*spec*/) override;
-
-  void testRunStarting(TestRunInfo const &runInfo) override;
-
-  void testGroupStarting(GroupInfo const &groupInfo) override;
-
-  void testCaseStarting(TestCaseInfo const &testCaseInfo) override;
-  bool assertionEnded(AssertionStats const &assertionStats) override;
-
-  void testCaseEnded(TestCaseStats const &testCaseStats) override;
-
-  void testGroupEnded(TestGroupStats const &testGroupStats) override;
-
-  void testRunEndedCumulative() override;
-
-  void writeGroup(TestGroupNode const &groupNode, double suiteTime);
-
-  void writeTestCase(TestCaseNode const &testCaseNode);
-
-  void writeSection(std::string const &className, std::string const &rootName, SectionNode const &sectionNode);
-
-  void writeAssertions(SectionNode const &sectionNode);
-  void writeAssertion(AssertionStats const &stats);
-
-  XmlWriter xml;
-  Timer suiteTimer;
-  std::string stdOutForSuite;
-  std::string stdErrForSuite;
-  unsigned int unexpectedExceptions = 0;
-  bool m_okToFail                   = false;
-};
-
-} // end namespace Catch
-
-// end catch_reporter_junit.h
-// start catch_reporter_xml.h
-
-namespace Catch {
-class XmlReporter : public StreamingReporterBase<XmlReporter> {
-public:
-  XmlReporter(ReporterConfig const &_config);
-
-  ~XmlReporter() override;
-
-  static std::string getDescription();
-
-  virtual std::string getStylesheetRef() const;
-
-  void writeSourceInfo(SourceLineInfo const &sourceInfo);
-
-public: // StreamingReporterBase
-  void noMatchingTestCases(std::string const &s) override;
-
-  void testRunStarting(TestRunInfo const &testInfo) override;
-
-  void testGroupStarting(GroupInfo const &groupInfo) override;
-
-  void testCaseStarting(TestCaseInfo const &testInfo) override;
-
-  void sectionStarting(SectionInfo const &sectionInfo) override;
-
-  void assertionStarting(AssertionInfo const &) override;
-
-  bool assertionEnded(AssertionStats const &assertionStats) override;
-
-  void sectionEnded(SectionStats const &sectionStats) override;
-
-  void testCaseEnded(TestCaseStats const &testCaseStats) override;
-
-  void testGroupEnded(TestGroupStats const &testGroupStats) override;
-
-  void testRunEnded(TestRunStats const &testRunStats) override;
-
-private:
-  Timer m_testCaseTimer;
-  XmlWriter m_xml;
-  int m_sectionDepth = 0;
-};
-
-} // end namespace Catch
-
-// end catch_reporter_xml.h
-
-// end catch_external_interfaces.h
-#endif
-
-#endif // ! CATCH_CONFIG_IMPL_ONLY
-
-#ifdef CATCH_IMPL
-// start catch_impl.hpp
-
-#ifdef __clang__
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wweak-vtables"
-#endif
-
-// Keep these here for external reporters
-// start catch_test_case_tracker.h
-
-#include <memory>
-#include <string>
-#include <vector>
-
-namespace Catch {
-namespace TestCaseTracking {
-
-struct NameAndLocation {
-  std::string name;
-  SourceLineInfo location;
-
-  NameAndLocation(std::string const &_name, SourceLineInfo const &_location);
-};
-
-struct ITracker;
-
-using ITrackerPtr = std::shared_ptr<ITracker>;
-
-struct ITracker {
-  virtual ~ITracker();
-
-  // static queries
-  virtual NameAndLocation const &nameAndLocation() const = 0;
-
-  // dynamic queries
-  virtual bool isComplete() const              = 0; // Successfully completed or failed
-  virtual bool isSuccessfullyCompleted() const = 0;
-  virtual bool isOpen() const                  = 0; // Started but not complete
-  virtual bool hasChildren() const             = 0;
-
-  virtual ITracker &parent() = 0;
-
-  // actions
-  virtual void close()                   = 0; // Successfully complete
-  virtual void fail()                    = 0;
-  virtual void markAsNeedingAnotherRun() = 0;
-
-  virtual void addChild(ITrackerPtr const &child)                       = 0;
-  virtual ITrackerPtr findChild(NameAndLocation const &nameAndLocation) = 0;
-  virtual void openChild()                                              = 0;
-
-  // Debug/ checking
-  virtual bool isSectionTracker() const = 0;
-  virtual bool isIndexTracker() const   = 0;
-};
-
-class TrackerContext {
-
-  enum RunState { NotStarted, Executing, CompletedCycle };
-
-  ITrackerPtr m_rootTracker;
-  ITracker *m_currentTracker = nullptr;
-  RunState m_runState        = NotStarted;
-
-public:
-  static TrackerContext &instance();
-
-  ITracker &startRun();
-  void endRun();
-
-  void startCycle();
-  void completeCycle();
-
-  bool completedCycle() const;
-  ITracker &currentTracker();
-  void setCurrentTracker(ITracker *tracker);
-};
-
-class TrackerBase : public ITracker {
-protected:
-  enum CycleState { NotStarted, Executing, ExecutingChildren, NeedsAnotherRun, CompletedSuccessfully, Failed };
-
-  class TrackerHasName {
-    NameAndLocation m_nameAndLocation;
-
-  public:
-    TrackerHasName(NameAndLocation const &nameAndLocation);
-    bool operator()(ITrackerPtr const &tracker) const;
-  };
-
-  using Children = std::vector<ITrackerPtr>;
-  NameAndLocation m_nameAndLocation;
-  TrackerContext &m_ctx;
-  ITracker *m_parent;
-  Children m_children;
-  CycleState m_runState = NotStarted;
-
-public:
-  TrackerBase(NameAndLocation const &nameAndLocation, TrackerContext &ctx, ITracker *parent);
-
-  NameAndLocation const &nameAndLocation() const override;
-  bool isComplete() const override;
-  bool isSuccessfullyCompleted() const override;
-  bool isOpen() const override;
-  bool hasChildren() const override;
-
-  void addChild(ITrackerPtr const &child) override;
-
-  ITrackerPtr findChild(NameAndLocation const &nameAndLocation) override;
-  ITracker &parent() override;
-
-  void openChild() override;
-
-  bool isSectionTracker() const override;
-  bool isIndexTracker() const override;
-
-  void open();
-
-  void close() override;
-  void fail() override;
-  void markAsNeedingAnotherRun() override;
-
-private:
-  void moveToParent();
-  void moveToThis();
-};
-
-class SectionTracker : public TrackerBase {
-  std::vector<std::string> m_filters;
-
-public:
-  SectionTracker(NameAndLocation const &nameAndLocation, TrackerContext &ctx, ITracker *parent);
-
-  bool isSectionTracker() const override;
-
-  static SectionTracker &acquire(TrackerContext &ctx, NameAndLocation const &nameAndLocation);
-
-  void tryOpen();
-
-  void addInitialFilters(std::vector<std::string> const &filters);
-  void addNextFilters(std::vector<std::string> const &filters);
-};
-
-class IndexTracker : public TrackerBase {
-  int m_size;
-  int m_index = -1;
-
-public:
-  IndexTracker(NameAndLocation const &nameAndLocation, TrackerContext &ctx, ITracker *parent, int size);
-
-  bool isIndexTracker() const override;
-  void close() override;
-
-  static IndexTracker &acquire(TrackerContext &ctx, NameAndLocation const &nameAndLocation, int size);
-
-  int index() const;
-
-  void moveNext();
-};
-
-} // namespace TestCaseTracking
-
-using TestCaseTracking::ITracker;
-using TestCaseTracking::TrackerContext;
-using TestCaseTracking::SectionTracker;
-using TestCaseTracking::IndexTracker;
-
-} // namespace Catch
-
-// end catch_test_case_tracker.h
-
-// start catch_leak_detector.h
-
-namespace Catch {
-
-struct LeakDetector {
-  LeakDetector();
-};
-
-} // namespace Catch
-// end catch_leak_detector.h
-// Cpp files will be included in the single-header file here
-// start catch_approx.cpp
-
-#include <cmath>
-#include <limits>
-
-namespace {
-
-// Performs equivalent check of std::fabs(lhs - rhs) <= margin
-// But without the subtraction to allow for INFINITY in comparison
-bool marginComparison(double lhs, double rhs, double margin) {
-  return (lhs + margin >= rhs) && (rhs + margin >= lhs);
-}
-
-} // namespace
-
-namespace Catch {
-namespace Detail {
-
-Approx::Approx(double value)
-    : m_epsilon(std::numeric_limits<float>::epsilon() * 100), m_margin(0.0), m_scale(0.0), m_value(value) {
-}
-
-Approx Approx::custom() {
-  return Approx(0);
-}
-
-std::string Approx::toString() const {
-  ReusableStringStream rss;
-  rss << "Approx( " << ::Catch::Detail::stringify(m_value) << " )";
-  return rss.str();
-}
-
-bool Approx::equalityComparisonImpl(const double other) const {
-  // First try with fixed margin, then compute margin based on epsilon, scale and Approx's value
-  // Thanks to Richard Harris for his help refining the scaled margin value
-  return marginComparison(m_value, other, m_margin) ||
-         marginComparison(m_value, other, m_epsilon * (m_scale + std::fabs(m_value)));
-}
-
-} // end namespace Detail
-
-std::string StringMaker<Catch::Detail::Approx>::convert(Catch::Detail::Approx const &value) {
-  return value.toString();
-}
-
-} // end namespace Catch
-// end catch_approx.cpp
-// start catch_assertionhandler.cpp
-
-// start catch_context.h
-
-#include <memory>
-
-namespace Catch {
-
-struct IResultCapture;
-struct IRunner;
-struct IConfig;
-struct IMutableContext;
-
-using IConfigPtr = std::shared_ptr<IConfig const>;
-
-struct IContext {
-  virtual ~IContext();
-
-  virtual IResultCapture *getResultCapture()  = 0;
-  virtual IRunner *getRunner()                = 0;
-  virtual IConfigPtr const &getConfig() const = 0;
-};
-
-struct IMutableContext : IContext {
-  virtual ~IMutableContext();
-  virtual void setResultCapture(IResultCapture *resultCapture) = 0;
-  virtual void setRunner(IRunner *runner)                      = 0;
-  virtual void setConfig(IConfigPtr const &config)             = 0;
-
-private:
-  static IMutableContext *currentContext;
-  friend IMutableContext &getCurrentMutableContext();
-  friend void cleanUpContext();
-  static void createContext();
-};
-
-inline IMutableContext &getCurrentMutableContext() {
-  if (!IMutableContext::currentContext)
-    IMutableContext::createContext();
-  return *IMutableContext::currentContext;
-}
-
-inline IContext &getCurrentContext() {
-  return getCurrentMutableContext();
-}
-
-void cleanUpContext();
-} // namespace Catch
-
-// end catch_context.h
-// start catch_debugger.h
-
-namespace Catch {
-bool isDebuggerActive();
-}
-
-#ifdef CATCH_PLATFORM_MAC
-
-#define CATCH_TRAP() __asm__("int $3\n" : :) /* NOLINT */
-
-#elif defined(CATCH_PLATFORM_LINUX)
-// If we can use inline assembler, do it because this allows us to break
-// directly at the location of the failing check instead of breaking inside
-// raise() called from it, i.e. one stack frame below.
-#if defined(__GNUC__) && (defined(__i386) || defined(__x86_64))
-#define CATCH_TRAP() asm volatile("int $3") /* NOLINT */
-#else                                       // Fall back to the generic way.
-#include <signal.h>
-
-#define CATCH_TRAP() raise(SIGTRAP)
-#endif
-#elif defined(_MSC_VER)
-#define CATCH_TRAP() __debugbreak()
-#elif defined(__MINGW32__)
-extern "C" __declspec(dllimport) void __stdcall DebugBreak();
-#define CATCH_TRAP() DebugBreak()
-#endif
-
-#ifdef CATCH_TRAP
-#define CATCH_BREAK_INTO_DEBUGGER()                                                                                    \
-  if (Catch::isDebuggerActive()) {                                                                                     \
-    CATCH_TRAP();                                                                                                      \
-  }
-#else
-namespace Catch {
-inline void doNothing() {
-}
-} // namespace Catch
-#define CATCH_BREAK_INTO_DEBUGGER() Catch::doNothing()
-#endif
-
-// end catch_debugger.h
-// start catch_run_context.h
-
-// start catch_fatal_condition.h
-
-// start catch_windows_h_proxy.h
-
-#if defined(CATCH_PLATFORM_WINDOWS)
-
-#if !defined(NOMINMAX) && !defined(CATCH_CONFIG_NO_NOMINMAX)
-#define CATCH_DEFINED_NOMINMAX
-#define NOMINMAX
-#endif
-#if !defined(WIN32_LEAN_AND_MEAN) && !defined(CATCH_CONFIG_NO_WIN32_LEAN_AND_MEAN)
-#define CATCH_DEFINED_WIN32_LEAN_AND_MEAN
-#define WIN32_LEAN_AND_MEAN
-#endif
-
-#ifdef __AFXDLL
-#include <AfxWin.h>
-#else
-#include <windows.h>
-#endif
-
-#ifdef CATCH_DEFINED_NOMINMAX
-#undef NOMINMAX
-#endif
-#ifdef CATCH_DEFINED_WIN32_LEAN_AND_MEAN
-#undef WIN32_LEAN_AND_MEAN
-#endif
-
-#endif // defined(CATCH_PLATFORM_WINDOWS)
-
-// end catch_windows_h_proxy.h
-#if defined(CATCH_CONFIG_WINDOWS_SEH)
-
-namespace Catch {
-
-struct FatalConditionHandler {
-
-  static LONG CALLBACK handleVectoredException(PEXCEPTION_POINTERS ExceptionInfo);
-  FatalConditionHandler();
-  static void reset();
-  ~FatalConditionHandler();
-
-private:
-  static bool isSet;
-  static ULONG guaranteeSize;
-  static PVOID exceptionHandlerHandle;
-};
-
-} // namespace Catch
-
-#elif defined(CATCH_CONFIG_POSIX_SIGNALS)
-
-#include <signal.h>
-
-namespace Catch {
-
-struct FatalConditionHandler {
-
-  static bool isSet;
-  static struct sigaction oldSigActions[];
-  static stack_t oldSigStack;
-  static char altStackMem[];
-
-  static void handleSignal(int sig);
-
-  FatalConditionHandler();
-  ~FatalConditionHandler();
-  static void reset();
-};
-
-} // namespace Catch
-
-#else
-
-namespace Catch {
-struct FatalConditionHandler {
-  void reset();
-};
-} // namespace Catch
-
-#endif
-
-// end catch_fatal_condition.h
-#include <string>
-
-namespace Catch {
-
-struct IMutableContext;
-
-///////////////////////////////////////////////////////////////////////////
-
-class RunContext : public IResultCapture, public IRunner {
-
-public:
-  RunContext(RunContext const &) = delete;
-  RunContext &operator=(RunContext const &) = delete;
-
-  explicit RunContext(IConfigPtr const &_config, IStreamingReporterPtr &&reporter);
-
-  ~RunContext() override;
-
-  void testGroupStarting(std::string const &testSpec, std::size_t groupIndex, std::size_t groupsCount);
-  void testGroupEnded(std::string const &testSpec, Totals const &totals, std::size_t groupIndex,
-                      std::size_t groupsCount);
-
-  Totals runTest(TestCase const &testCase);
-
-  IConfigPtr config() const;
-  IStreamingReporter &reporter() const;
-
-public: // IResultCapture
-  // Assertion handlers
-  void handleExpr(AssertionInfo const &info, ITransientExpression const &expr, AssertionReaction &reaction) override;
-  void handleMessage(AssertionInfo const &info, ResultWas::OfType resultType, StringRef const &message,
-                     AssertionReaction &reaction) override;
-  void handleUnexpectedExceptionNotThrown(AssertionInfo const &info, AssertionReaction &reaction) override;
-  void handleUnexpectedInflightException(AssertionInfo const &info, std::string const &message,
-                                         AssertionReaction &reaction) override;
-  void handleIncomplete(AssertionInfo const &info) override;
-  void handleNonExpr(AssertionInfo const &info, ResultWas::OfType resultType, AssertionReaction &reaction) override;
-
-  bool sectionStarted(SectionInfo const &sectionInfo, Counts &assertions) override;
-
-  void sectionEnded(SectionEndInfo const &endInfo) override;
-  void sectionEndedEarly(SectionEndInfo const &endInfo) override;
-
-  void benchmarkStarting(BenchmarkInfo const &info) override;
-  void benchmarkEnded(BenchmarkStats const &stats) override;
-
-  void pushScopedMessage(MessageInfo const &message) override;
-  void popScopedMessage(MessageInfo const &message) override;
-
-  std::string getCurrentTestName() const override;
-
-  const AssertionResult *getLastResult() const override;
-
-  void exceptionEarlyReported() override;
-
-  void handleFatalErrorCondition(StringRef message) override;
-
-  bool lastAssertionPassed() override;
-
-  void assertionPassed() override;
-
-public:
-  // !TBD We need to do this another way!
-  bool aborting() const final;
-
-private:
-  void runCurrentTest(std::string &redirectedCout, std::string &redirectedCerr);
-  void invokeActiveTestCase();
-
-  void resetAssertionInfo();
-  bool testForMissingAssertions(Counts &assertions);
-
-  void assertionEnded(AssertionResult const &result);
-  void reportExpr(AssertionInfo const &info, ResultWas::OfType resultType, ITransientExpression const *expr,
-                  bool negated);
-
-  void populateReaction(AssertionReaction &reaction);
-
-private:
-  void handleUnfinishedSections();
-
-  TestRunInfo m_runInfo;
-  IMutableContext &m_context;
-  TestCase const *m_activeTestCase = nullptr;
-  ITracker *m_testCaseTracker;
-  Option<AssertionResult> m_lastResult;
-
-  IConfigPtr m_config;
-  Totals m_totals;
-  IStreamingReporterPtr m_reporter;
-  std::vector<MessageInfo> m_messages;
-  AssertionInfo m_lastAssertionInfo;
-  std::vector<SectionEndInfo> m_unfinishedSections;
-  std::vector<ITracker *> m_activeSections;
-  TrackerContext m_trackerContext;
-  bool m_lastAssertionPassed    = false;
-  bool m_shouldReportUnexpected = true;
-  bool m_includeSuccessfulResults;
-};
-
-} // end namespace Catch
-
-// end catch_run_context.h
-namespace Catch {
-
-auto operator<<(std::ostream &os, ITransientExpression const &expr) -> std::ostream & {
-  expr.streamReconstructedExpression(os);
-  return os;
-}
-
-LazyExpression::LazyExpression(bool isNegated) : m_isNegated(isNegated) {
-}
-
-LazyExpression::LazyExpression(LazyExpression const &other) : m_isNegated(other.m_isNegated) {
-}
-
-LazyExpression::operator bool() const {
-  return m_transientExpression != nullptr;
-}
-
-auto operator<<(std::ostream &os, LazyExpression const &lazyExpr) -> std::ostream & {
-  if (lazyExpr.m_isNegated)
-    os << "!";
-
-  if (lazyExpr) {
-    if (lazyExpr.m_isNegated && lazyExpr.m_transientExpression->isBinaryExpression())
-      os << "(" << *lazyExpr.m_transientExpression << ")";
-    else
-      os << *lazyExpr.m_transientExpression;
-  } else {
-    os << "{** error - unchecked empty expression requested **}";
-  }
-  return os;
-}
-
-AssertionHandler::AssertionHandler(StringRef macroName, SourceLineInfo const &lineInfo, StringRef capturedExpression,
-                                   ResultDisposition::Flags resultDisposition)
-    : m_assertionInfo{macroName, lineInfo, capturedExpression, resultDisposition}, m_resultCapture(getResultCapture()) {
-}
-
-void AssertionHandler::handleExpr(ITransientExpression const &expr) {
-  m_resultCapture.handleExpr(m_assertionInfo, expr, m_reaction);
-}
-void AssertionHandler::handleMessage(ResultWas::OfType resultType, StringRef const &message) {
-  m_resultCapture.handleMessage(m_assertionInfo, resultType, message, m_reaction);
-}
-
-auto AssertionHandler::allowThrows() const -> bool {
-  return getCurrentContext().getConfig()->allowThrows();
-}
-
-void AssertionHandler::complete() {
-  setCompleted();
-  if (m_reaction.shouldDebugBreak) {
-
-    // If you find your debugger stopping you here then go one level up on the
-    // call-stack for the code that caused it (typically a failed assertion)
-
-    // (To go back to the test and change execution, jump over the throw, next)
-    CATCH_BREAK_INTO_DEBUGGER();
-  }
-  if (m_reaction.shouldThrow)
-    throw Catch::TestFailureException();
-}
-void AssertionHandler::setCompleted() {
-  m_completed = true;
-}
-
-void AssertionHandler::handleUnexpectedInflightException() {
-  m_resultCapture.handleUnexpectedInflightException(m_assertionInfo, Catch::translateActiveException(), m_reaction);
-}
-
-void AssertionHandler::handleExceptionThrownAsExpected() {
-  m_resultCapture.handleNonExpr(m_assertionInfo, ResultWas::Ok, m_reaction);
-}
-void AssertionHandler::handleExceptionNotThrownAsExpected() {
-  m_resultCapture.handleNonExpr(m_assertionInfo, ResultWas::Ok, m_reaction);
-}
-
-void AssertionHandler::handleUnexpectedExceptionNotThrown() {
-  m_resultCapture.handleUnexpectedExceptionNotThrown(m_assertionInfo, m_reaction);
-}
-
-void AssertionHandler::handleThrowingCallSkipped() {
-  m_resultCapture.handleNonExpr(m_assertionInfo, ResultWas::Ok, m_reaction);
-}
-
-// This is the overload that takes a string and infers the Equals matcher from it
-// The more general overload, that takes any string matcher, is in catch_capture_matchers.cpp
-void handleExceptionMatchExpr(AssertionHandler &handler, std::string const &str, StringRef matcherString) {
-  handleExceptionMatchExpr(handler, Matchers::Equals(str), matcherString);
-}
-
-} // namespace Catch
-// end catch_assertionhandler.cpp
-// start catch_assertionresult.cpp
-
-namespace Catch {
-AssertionResultData::AssertionResultData(ResultWas::OfType _resultType, LazyExpression const &_lazyExpression)
-    : lazyExpression(_lazyExpression), resultType(_resultType) {
-}
-
-std::string AssertionResultData::reconstructExpression() const {
-
-  if (reconstructedExpression.empty()) {
-    if (lazyExpression) {
-      ReusableStringStream rss;
-      rss << lazyExpression;
-      reconstructedExpression = rss.str();
-    }
-  }
-  return reconstructedExpression;
-}
-
-AssertionResult::AssertionResult(AssertionInfo const &info, AssertionResultData const &data)
-    : m_info(info), m_resultData(data) {
-}
-
-// Result was a success
-bool AssertionResult::succeeded() const {
-  return Catch::isOk(m_resultData.resultType);
-}
-
-// Result was a success, or failure is suppressed
-bool AssertionResult::isOk() const {
-  return Catch::isOk(m_resultData.resultType) || shouldSuppressFailure(m_info.resultDisposition);
-}
-
-ResultWas::OfType AssertionResult::getResultType() const {
-  return m_resultData.resultType;
-}
-
-bool AssertionResult::hasExpression() const {
-  return m_info.capturedExpression[0] != 0;
-}
-
-bool AssertionResult::hasMessage() const {
-  return !m_resultData.message.empty();
-}
-
-std::string AssertionResult::getExpression() const {
-  if (isFalseTest(m_info.resultDisposition))
-    return "!(" + m_info.capturedExpression + ")";
-  else
-    return m_info.capturedExpression;
-}
-
-std::string AssertionResult::getExpressionInMacro() const {
-  std::string expr;
-  if (m_info.macroName[0] == 0)
-    expr = m_info.capturedExpression;
-  else {
-    expr.reserve(m_info.macroName.size() + m_info.capturedExpression.size() + 4);
-    expr += m_info.macroName;
-    expr += "( ";
-    expr += m_info.capturedExpression;
-    expr += " )";
-  }
-  return expr;
-}
-
-bool AssertionResult::hasExpandedExpression() const {
-  return hasExpression() && getExpandedExpression() != getExpression();
-}
-
-std::string AssertionResult::getExpandedExpression() const {
-  std::string expr = m_resultData.reconstructExpression();
-  return expr.empty() ? getExpression() : expr;
-}
-
-std::string AssertionResult::getMessage() const {
-  return m_resultData.message;
-}
-SourceLineInfo AssertionResult::getSourceInfo() const {
-  return m_info.lineInfo;
-}
-
-StringRef AssertionResult::getTestMacroName() const {
-  return m_info.macroName;
-}
-
-} // end namespace Catch
-// end catch_assertionresult.cpp
-// start catch_benchmark.cpp
-
-namespace Catch {
-
-auto BenchmarkLooper::getResolution() -> uint64_t {
-  return getEstimatedClockResolution() * getCurrentContext().getConfig()->benchmarkResolutionMultiple();
-}
-
-void BenchmarkLooper::reportStart() {
-  getResultCapture().benchmarkStarting({m_name});
-}
-auto BenchmarkLooper::needsMoreIterations() -> bool {
-  auto elapsed = m_timer.getElapsedNanoseconds();
-
-  // Exponentially increasing iterations until we're confident in our timer resolution
-  if (elapsed < m_resolution) {
-    m_iterationsToRun *= 10;
-    return true;
-  }
-
-  getResultCapture().benchmarkEnded({{m_name}, m_count, elapsed});
-  return false;
-}
-
-} // end namespace Catch
-// end catch_benchmark.cpp
-// start catch_capture_matchers.cpp
-
-namespace Catch {
-
-using StringMatcher = Matchers::Impl::MatcherBase<std::string>;
-
-// This is the general overload that takes a any string matcher
-// There is another overload, in catch_assertionhandler.h/.cpp, that only takes a string and infers
-// the Equals matcher (so the header does not mention matchers)
-void handleExceptionMatchExpr(AssertionHandler &handler, StringMatcher const &matcher, StringRef matcherString) {
-  std::string exceptionMessage = Catch::translateActiveException();
-  MatchExpr<std::string, StringMatcher const &> expr(exceptionMessage, matcher, matcherString);
-  handler.handleExpr(expr);
-}
-
-} // namespace Catch
-// end catch_capture_matchers.cpp
-// start catch_commandline.cpp
-
-// start catch_commandline.h
-
-// start catch_clara.h
-
-// Use Catch's value for console width (store Clara's off to the side, if present)
-#ifdef CLARA_CONFIG_CONSOLE_WIDTH
-#define CATCH_TEMP_CLARA_CONFIG_CONSOLE_WIDTH CATCH_CLARA_TEXTFLOW_CONFIG_CONSOLE_WIDTH
-#undef CATCH_CLARA_TEXTFLOW_CONFIG_CONSOLE_WIDTH
-#endif
-#define CATCH_CLARA_TEXTFLOW_CONFIG_CONSOLE_WIDTH CATCH_CONFIG_CONSOLE_WIDTH - 1
-
-#ifdef __clang__
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wweak-vtables"
-#pragma clang diagnostic ignored "-Wexit-time-destructors"
-#pragma clang diagnostic ignored "-Wshadow"
-#endif
-
-// start clara.hpp
-// Copyright 2017 Two Blue Cubes Ltd. All rights reserved.
-//
-// Distributed under the Boost Software License, Version 1.0. (See accompanying
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-// See https://github.com/philsquared/Clara for more details
-
-// Clara v1.1.4
-
-#ifndef CATCH_CLARA_CONFIG_CONSOLE_WIDTH
-#define CATCH_CLARA_CONFIG_CONSOLE_WIDTH 80
-#endif
-
-#ifndef CATCH_CLARA_TEXTFLOW_CONFIG_CONSOLE_WIDTH
-#define CATCH_CLARA_TEXTFLOW_CONFIG_CONSOLE_WIDTH CATCH_CLARA_CONFIG_CONSOLE_WIDTH
-#endif
-
-#ifndef CLARA_CONFIG_OPTIONAL_TYPE
-#ifdef __has_include
-#if __has_include(<optional>) && __cplusplus >= 201703L
-#include <optional>
-#define CLARA_CONFIG_OPTIONAL_TYPE std::optional
-#endif
-#endif
-#endif
-
-// ----------- #included from clara_textflow.hpp -----------
-
-// TextFlowCpp
-//
-// A single-header library for wrapping and laying out basic text, by Phil Nash
-//
-// This work is licensed under the BSD 2-Clause license.
-// See the accompanying LICENSE file, or the one at https://opensource.org/licenses/BSD-2-Clause
-//
-// This project is hosted at https://github.com/philsquared/textflowcpp
-
-#include <cassert>
-#include <ostream>
-#include <sstream>
-#include <vector>
-
-#ifndef CATCH_CLARA_TEXTFLOW_CONFIG_CONSOLE_WIDTH
-#define CATCH_CLARA_TEXTFLOW_CONFIG_CONSOLE_WIDTH 80
-#endif
-
-namespace Catch {
-namespace clara {
-namespace TextFlow {
-
-inline auto isWhitespace(char c) -> bool {
-  static std::string chars = " \t\n\r";
-  return chars.find(c) != std::string::npos;
-}
-inline auto isBreakableBefore(char c) -> bool {
-  static std::string chars = "[({<|";
-  return chars.find(c) != std::string::npos;
-}
-inline auto isBreakableAfter(char c) -> bool {
-  static std::string chars = "])}>.,:;*+-=&/\\";
-  return chars.find(c) != std::string::npos;
-}
-
-class Columns;
-
-class Column {
-  std::vector<std::string> m_strings;
-  size_t m_width         = CATCH_CLARA_TEXTFLOW_CONFIG_CONSOLE_WIDTH;
-  size_t m_indent        = 0;
-  size_t m_initialIndent = std::string::npos;
-
-public:
-  class iterator {
-    friend Column;
-
-    Column const &m_column;
-    size_t m_stringIndex = 0;
-    size_t m_pos         = 0;
-
-    size_t m_len  = 0;
-    size_t m_end  = 0;
-    bool m_suffix = false;
-
-    iterator(Column const &column, size_t stringIndex) : m_column(column), m_stringIndex(stringIndex) {
-    }
-
-    auto line() const -> std::string const & {
-      return m_column.m_strings[m_stringIndex];
-    }
-
-    auto isBoundary(size_t at) const -> bool {
-      assert(at > 0);
-      assert(at <= line().size());
-
-      return at == line().size() || (isWhitespace(line()[at]) && !isWhitespace(line()[at - 1])) ||
-             isBreakableBefore(line()[at]) || isBreakableAfter(line()[at - 1]);
-    }
-
-    void calcLength() {
-      assert(m_stringIndex < m_column.m_strings.size());
-
-      m_suffix   = false;
-      auto width = m_column.m_width - indent();
-      m_end      = m_pos;
-      while (m_end < line().size() && line()[m_end] != '\n')
-        ++m_end;
-
-      if (m_end < m_pos + width) {
-        m_len = m_end - m_pos;
-      } else {
-        size_t len = width;
-        while (len > 0 && !isBoundary(m_pos + len))
-          --len;
-        while (len > 0 && isWhitespace(line()[m_pos + len - 1]))
-          --len;
-
-        if (len > 0) {
-          m_len = len;
-        } else {
-          m_suffix = true;
-          m_len    = width - 1;
-        }
-      }
-    }
-
-    auto indent() const -> size_t {
-      auto initial = m_pos == 0 && m_stringIndex == 0 ? m_column.m_initialIndent : std::string::npos;
-      return initial == std::string::npos ? m_column.m_indent : initial;
-    }
-
-    auto addIndentAndSuffix(std::string const &plain) const -> std::string {
-      return std::string(indent(), ' ') + (m_suffix ? plain + "-" : plain);
-    }
-
-  public:
-    explicit iterator(Column const &column) : m_column(column) {
-      assert(m_column.m_width > m_column.m_indent);
-      assert(m_column.m_initialIndent == std::string::npos || m_column.m_width > m_column.m_initialIndent);
-      calcLength();
-      if (m_len == 0)
-        m_stringIndex++; // Empty string
-    }
-
-    auto operator*() const -> std::string {
-      assert(m_stringIndex < m_column.m_strings.size());
-      assert(m_pos <= m_end);
-      if (m_pos + m_column.m_width < m_end)
-        return addIndentAndSuffix(line().substr(m_pos, m_len));
-      else
-        return addIndentAndSuffix(line().substr(m_pos, m_end - m_pos));
-    }
-
-    auto operator++() -> iterator & {
-      m_pos += m_len;
-      if (m_pos < line().size() && line()[m_pos] == '\n')
-        m_pos += 1;
-      else
-        while (m_pos < line().size() && isWhitespace(line()[m_pos]))
-          ++m_pos;
-
-      if (m_pos == line().size()) {
-        m_pos = 0;
-        ++m_stringIndex;
-      }
-      if (m_stringIndex < m_column.m_strings.size())
-        calcLength();
-      return *this;
-    }
-    auto operator++(int) -> iterator {
-      iterator prev(*this);
-      operator++();
-      return prev;
-    }
-
-    auto operator==(iterator const &other) const -> bool {
-      return m_pos == other.m_pos && m_stringIndex == other.m_stringIndex && &m_column == &other.m_column;
-    }
-    auto operator!=(iterator const &other) const -> bool {
-      return !operator==(other);
-    }
-  };
-  using const_iterator = iterator;
-
-  explicit Column(std::string const &text) {
-    m_strings.push_back(text);
-  }
-
-  auto width(size_t newWidth) -> Column & {
-    assert(newWidth > 0);
-    m_width = newWidth;
-    return *this;
-  }
-  auto indent(size_t newIndent) -> Column & {
-    m_indent = newIndent;
-    return *this;
-  }
-  auto initialIndent(size_t newIndent) -> Column & {
-    m_initialIndent = newIndent;
-    return *this;
-  }
-
-  auto width() const -> size_t {
-    return m_width;
-  }
-  auto begin() const -> iterator {
-    return iterator(*this);
-  }
-  auto end() const -> iterator {
-    return {*this, m_strings.size()};
-  }
-
-  inline friend std::ostream &operator<<(std::ostream &os, Column const &col) {
-    bool first = true;
-    for (auto line : col) {
-      if (first)
-        first = false;
-      else
-        os << "\n";
-      os << line;
-    }
-    return os;
-  }
-
-  auto operator+(Column const &other) -> Columns;
-
-  auto toString() const -> std::string {
-    std::ostringstream oss;
-    oss << *this;
-    return oss.str();
-  }
-};
-
-class Spacer : public Column {
-
-public:
-  explicit Spacer(size_t spaceWidth) : Column("") {
-    width(spaceWidth);
-  }
-};
-
-class Columns {
-  std::vector<Column> m_columns;
-
-public:
-  class iterator {
-    friend Columns;
-    struct EndTag {};
-
-    std::vector<Column> const &m_columns;
-    std::vector<Column::iterator> m_iterators;
-    size_t m_activeIterators;
-
-    iterator(Columns const &columns, EndTag) : m_columns(columns.m_columns), m_activeIterators(0) {
-      m_iterators.reserve(m_columns.size());
-
-      for (auto const &col : m_columns)
-        m_iterators.push_back(col.end());
-    }
-
-  public:
-    explicit iterator(Columns const &columns) : m_columns(columns.m_columns), m_activeIterators(m_columns.size()) {
-      m_iterators.reserve(m_columns.size());
-
-      for (auto const &col : m_columns)
-        m_iterators.push_back(col.begin());
-    }
-
-    auto operator==(iterator const &other) const -> bool {
-      return m_iterators == other.m_iterators;
-    }
-    auto operator!=(iterator const &other) const -> bool {
-      return m_iterators != other.m_iterators;
-    }
-    auto operator*() const -> std::string {
-      std::string row, padding;
-
-      for (size_t i = 0; i < m_columns.size(); ++i) {
-        auto width = m_columns[i].width();
-        if (m_iterators[i] != m_columns[i].end()) {
-          std::string col = *m_iterators[i];
-          row += padding + col;
-          if (col.size() < width)
-            padding = std::string(width - col.size(), ' ');
-          else
-            padding = "";
-        } else {
-          padding += std::string(width, ' ');
-        }
-      }
-      return row;
-    }
-    auto operator++() -> iterator & {
-      for (size_t i = 0; i < m_columns.size(); ++i) {
-        if (m_iterators[i] != m_columns[i].end())
-          ++m_iterators[i];
-      }
-      return *this;
-    }
-    auto operator++(int) -> iterator {
-      iterator prev(*this);
-      operator++();
-      return prev;
-    }
-  };
-  using const_iterator = iterator;
-
-  auto begin() const -> iterator {
-    return iterator(*this);
-  }
-  auto end() const -> iterator {
-    return {*this, iterator::EndTag()};
-  }
-
-  auto operator+=(Column const &col) -> Columns & {
-    m_columns.push_back(col);
-    return *this;
-  }
-  auto operator+(Column const &col) -> Columns {
-    Columns combined = *this;
-    combined += col;
-    return combined;
-  }
-
-  inline friend std::ostream &operator<<(std::ostream &os, Columns const &cols) {
-
-    bool first = true;
-    for (auto line : cols) {
-      if (first)
-        first = false;
-      else
-        os << "\n";
-      os << line;
-    }
-    return os;
-  }
-
-  auto toString() const -> std::string {
-    std::ostringstream oss;
-    oss << *this;
-    return oss.str();
-  }
-};
-
-inline auto Column::operator+(Column const &other) -> Columns {
-  Columns cols;
-  cols += *this;
-  cols += other;
-  return cols;
-}
-} // namespace TextFlow
-} // namespace clara
-} // namespace Catch
-
-// ----------- end of #include from clara_textflow.hpp -----------
-// ........... back in clara.hpp
-
-#include <algorithm>
-#include <memory>
-#include <set>
-
-#if !defined(CATCH_PLATFORM_WINDOWS) && (defined(WIN32) || defined(__WIN32__) || defined(_WIN32) || defined(_MSC_VER))
-#define CATCH_PLATFORM_WINDOWS
-#endif
-
-namespace Catch {
-namespace clara {
-namespace detail {
-
-// Traits for extracting arg and return type of lambdas (for single argument lambdas)
-template <typename L> struct UnaryLambdaTraits : UnaryLambdaTraits<decltype(&L::operator())> {};
-
-template <typename ClassT, typename ReturnT, typename... Args>
-struct UnaryLambdaTraits<ReturnT (ClassT::*)(Args...) const> {
-  static const bool isValid = false;
-};
-
-template <typename ClassT, typename ReturnT, typename ArgT> struct UnaryLambdaTraits<ReturnT (ClassT::*)(ArgT) const> {
-  static const bool isValid = true;
-  using ArgType             = typename std::remove_const<typename std::remove_reference<ArgT>::type>::type;
-  using ReturnType          = ReturnT;
-};
-
-class TokenStream;
-
-// Transport for raw args (copied from main args, or supplied via init list for testing)
-class Args {
-  friend TokenStream;
-  std::string m_exeName;
-  std::vector<std::string> m_args;
-
-public:
-  Args(int argc, char const *const *argv) : m_exeName(argv[0]), m_args(argv + 1, argv + argc) {
-  }
-
-  Args(std::initializer_list<std::string> args) : m_exeName(*args.begin()), m_args(args.begin() + 1, args.end()) {
-  }
-
-  auto exeName() const -> std::string {
-    return m_exeName;
-  }
-};
-
-// Wraps a token coming from a token stream. These may not directly correspond to strings as a single string
-// may encode an option + its argument if the : or = form is used
-enum class TokenType { Option, Argument };
-struct Token {
-  TokenType type;
-  std::string token;
-};
-
-inline auto isOptPrefix(char c) -> bool {
-  return c == '-'
-#ifdef CATCH_PLATFORM_WINDOWS
-         || c == '/'
-#endif
-      ;
-}
-
-// Abstracts iterators into args as a stream of tokens, with option arguments uniformly handled
-class TokenStream {
-  using Iterator = std::vector<std::string>::const_iterator;
-  Iterator it;
-  Iterator itEnd;
-  std::vector<Token> m_tokenBuffer;
-
-  void loadBuffer() {
-    m_tokenBuffer.resize(0);
-
-    // Skip any empty strings
-    while (it != itEnd && it->empty())
-      ++it;
-
-    if (it != itEnd) {
-      auto const &next = *it;
-      if (isOptPrefix(next[0])) {
-        auto delimiterPos = next.find_first_of(" :=");
-        if (delimiterPos != std::string::npos) {
-          m_tokenBuffer.push_back({TokenType::Option, next.substr(0, delimiterPos)});
-          m_tokenBuffer.push_back({TokenType::Argument, next.substr(delimiterPos + 1)});
-        } else {
-          if (next[1] != '-' && next.size() > 2) {
-            std::string opt = "- ";
-            for (size_t i = 1; i < next.size(); ++i) {
-              opt[1] = next[i];
-              m_tokenBuffer.push_back({TokenType::Option, opt});
-            }
-          } else {
-            m_tokenBuffer.push_back({TokenType::Option, next});
-          }
-        }
-      } else {
-        m_tokenBuffer.push_back({TokenType::Argument, next});
-      }
-    }
-  }
-
-public:
-  explicit TokenStream(Args const &args) : TokenStream(args.m_args.begin(), args.m_args.end()) {
-  }
-
-  TokenStream(Iterator it, Iterator itEnd) : it(it), itEnd(itEnd) {
-    loadBuffer();
-  }
-
-  explicit operator bool() const {
-    return !m_tokenBuffer.empty() || it != itEnd;
-  }
-
-  auto count() const -> size_t {
-    return m_tokenBuffer.size() + (itEnd - it);
-  }
-
-  auto operator*() const -> Token {
-    assert(!m_tokenBuffer.empty());
-    return m_tokenBuffer.front();
-  }
-
-  auto operator-> () const -> Token const * {
-    assert(!m_tokenBuffer.empty());
-    return &m_tokenBuffer.front();
-  }
-
-  auto operator++() -> TokenStream & {
-    if (m_tokenBuffer.size() >= 2) {
-      m_tokenBuffer.erase(m_tokenBuffer.begin());
-    } else {
-      if (it != itEnd)
-        ++it;
-      loadBuffer();
-    }
-    return *this;
-  }
-};
-
-class ResultBase {
-public:
-  enum Type { Ok, LogicError, RuntimeError };
-
-protected:
-  ResultBase(Type type) : m_type(type) {
-  }
-  virtual ~ResultBase() = default;
-
-  virtual void enforceOk() const = 0;
-
-  Type m_type;
-};
-
-template <typename T> class ResultValueBase : public ResultBase {
-public:
-  auto value() const -> T const & {
-    enforceOk();
-    return m_value;
-  }
-
-protected:
-  ResultValueBase(Type type) : ResultBase(type) {
-  }
-
-  ResultValueBase(ResultValueBase const &other) : ResultBase(other) {
-    if (m_type == ResultBase::Ok)
-      new (&m_value) T(other.m_value);
-  }
-
-  ResultValueBase(Type, T const &value) : ResultBase(Ok) {
-    new (&m_value) T(value);
-  }
-
-  auto operator=(ResultValueBase const &other) -> ResultValueBase & {
-    if (m_type == ResultBase::Ok)
-      m_value.~T();
-    ResultBase::operator=(other);
-    if (m_type == ResultBase::Ok)
-      new (&m_value) T(other.m_value);
-    return *this;
-  }
-
-  ~ResultValueBase() override {
-    if (m_type == Ok)
-      m_value.~T();
-  }
-
-  union {
-    T m_value;
-  };
-};
-
-template <> class ResultValueBase<void> : public ResultBase {
-protected:
-  using ResultBase::ResultBase;
-};
-
-template <typename T = void> class BasicResult : public ResultValueBase<T> {
-public:
-  template <typename U>
-  explicit BasicResult(BasicResult<U> const &other)
-      : ResultValueBase<T>(other.type()), m_errorMessage(other.errorMessage()) {
-    assert(type() != ResultBase::Ok);
-  }
-
-  template <typename U> static auto ok(U const &value) -> BasicResult {
-    return {ResultBase::Ok, value};
-  }
-  static auto ok() -> BasicResult {
-    return {ResultBase::Ok};
-  }
-  static auto logicError(std::string const &message) -> BasicResult {
-    return {ResultBase::LogicError, message};
-  }
-  static auto runtimeError(std::string const &message) -> BasicResult {
-    return {ResultBase::RuntimeError, message};
-  }
-
-  explicit operator bool() const {
-    return m_type == ResultBase::Ok;
-  }
-  auto type() const -> ResultBase::Type {
-    return m_type;
-  }
-  auto errorMessage() const -> std::string {
-    return m_errorMessage;
-  }
-
-protected:
-  void enforceOk() const override {
-
-    // Errors shouldn't reach this point, but if they do
-    // the actual error message will be in m_errorMessage
-    assert(m_type != ResultBase::LogicError);
-    assert(m_type != ResultBase::RuntimeError);
-    if (m_type != ResultBase::Ok)
-      std::abort();
-  }
-
-  std::string m_errorMessage; // Only populated if resultType is an error
-
-  BasicResult(ResultBase::Type type, std::string const &message) : ResultValueBase<T>(type), m_errorMessage(message) {
-    assert(m_type != ResultBase::Ok);
-  }
-
-  using ResultValueBase<T>::ResultValueBase;
-  using ResultBase::m_type;
-};
-
-enum class ParseResultType { Matched, NoMatch, ShortCircuitAll, ShortCircuitSame };
-
-class ParseState {
-public:
-  ParseState(ParseResultType type, TokenStream const &remainingTokens)
-      : m_type(type), m_remainingTokens(remainingTokens) {
-  }
-
-  auto type() const -> ParseResultType {
-    return m_type;
-  }
-  auto remainingTokens() const -> TokenStream {
-    return m_remainingTokens;
-  }
-
-private:
-  ParseResultType m_type;
-  TokenStream m_remainingTokens;
-};
-
-using Result              = BasicResult<void>;
-using ParserResult        = BasicResult<ParseResultType>;
-using InternalParseResult = BasicResult<ParseState>;
-
-struct HelpColumns {
-  std::string left;
-  std::string right;
-};
-
-template <typename T> inline auto convertInto(std::string const &source, T &target) -> ParserResult {
-  std::stringstream ss;
-  ss << source;
-  ss >> target;
-  if (ss.fail())
-    return ParserResult::runtimeError("Unable to convert '" + source + "' to destination type");
-  else
-    return ParserResult::ok(ParseResultType::Matched);
-}
-inline auto convertInto(std::string const &source, std::string &target) -> ParserResult {
-  target = source;
-  return ParserResult::ok(ParseResultType::Matched);
-}
-inline auto convertInto(std::string const &source, bool &target) -> ParserResult {
-  std::string srcLC = source;
-  std::transform(srcLC.begin(), srcLC.end(), srcLC.begin(), [](char c) { return static_cast<char>(::tolower(c)); });
-  if (srcLC == "y" || srcLC == "1" || srcLC == "true" || srcLC == "yes" || srcLC == "on")
-    target = true;
-  else if (srcLC == "n" || srcLC == "0" || srcLC == "false" || srcLC == "no" || srcLC == "off")
-    target = false;
-  else
-    return ParserResult::runtimeError("Expected a boolean value but did not recognise: '" + source + "'");
-  return ParserResult::ok(ParseResultType::Matched);
-}
-#ifdef CLARA_CONFIG_OPTIONAL_TYPE
-template <typename T>
-inline auto convertInto(std::string const &source, CLARA_CONFIG_OPTIONAL_TYPE<T> &target) -> ParserResult {
-  T temp;
-  auto result = convertInto(source, temp);
-  if (result)
-    target = std::move(temp);
-  return result;
-}
-#endif // CLARA_CONFIG_OPTIONAL_TYPE
-
-struct NonCopyable {
-  NonCopyable()                    = default;
-  NonCopyable(NonCopyable const &) = delete;
-  NonCopyable(NonCopyable &&)      = delete;
-  NonCopyable &operator=(NonCopyable const &) = delete;
-  NonCopyable &operator=(NonCopyable &&) = delete;
-};
-
-struct BoundRef : NonCopyable {
-  virtual ~BoundRef() = default;
-  virtual auto isContainer() const -> bool {
-    return false;
-  }
-  virtual auto isFlag() const -> bool {
-    return false;
-  }
-};
-struct BoundValueRefBase : BoundRef {
-  virtual auto setValue(std::string const &arg) -> ParserResult = 0;
-};
-struct BoundFlagRefBase : BoundRef {
-  virtual auto setFlag(bool flag) -> ParserResult = 0;
-  virtual auto isFlag() const -> bool {
-    return true;
-  }
-};
-
-template <typename T> struct BoundValueRef : BoundValueRefBase {
-  T &m_ref;
-
-  explicit BoundValueRef(T &ref) : m_ref(ref) {
-  }
-
-  auto setValue(std::string const &arg) -> ParserResult override {
-    return convertInto(arg, m_ref);
-  }
-};
-
-template <typename T> struct BoundValueRef<std::vector<T>> : BoundValueRefBase {
-  std::vector<T> &m_ref;
-
-  explicit BoundValueRef(std::vector<T> &ref) : m_ref(ref) {
-  }
-
-  auto isContainer() const -> bool override {
-    return true;
-  }
-
-  auto setValue(std::string const &arg) -> ParserResult override {
-    T temp;
-    auto result = convertInto(arg, temp);
-    if (result)
-      m_ref.push_back(temp);
-    return result;
-  }
-};
-
-struct BoundFlagRef : BoundFlagRefBase {
-  bool &m_ref;
-
-  explicit BoundFlagRef(bool &ref) : m_ref(ref) {
-  }
-
-  auto setFlag(bool flag) -> ParserResult override {
-    m_ref = flag;
-    return ParserResult::ok(ParseResultType::Matched);
-  }
-};
-
-template <typename ReturnType> struct LambdaInvoker {
-  static_assert(std::is_same<ReturnType, ParserResult>::value, "Lambda must return void or clara::ParserResult");
-
-  template <typename L, typename ArgType> static auto invoke(L const &lambda, ArgType const &arg) -> ParserResult {
-    return lambda(arg);
-  }
-};
-
-template <> struct LambdaInvoker<void> {
-  template <typename L, typename ArgType> static auto invoke(L const &lambda, ArgType const &arg) -> ParserResult {
-    lambda(arg);
-    return ParserResult::ok(ParseResultType::Matched);
-  }
-};
-
-template <typename ArgType, typename L>
-inline auto invokeLambda(L const &lambda, std::string const &arg) -> ParserResult {
-  ArgType temp{};
-  auto result = convertInto(arg, temp);
-  return !result ? result : LambdaInvoker<typename UnaryLambdaTraits<L>::ReturnType>::invoke(lambda, temp);
-}
-
-template <typename L> struct BoundLambda : BoundValueRefBase {
-  L m_lambda;
-
-  static_assert(UnaryLambdaTraits<L>::isValid, "Supplied lambda must take exactly one argument");
-  explicit BoundLambda(L const &lambda) : m_lambda(lambda) {
-  }
-
-  auto setValue(std::string const &arg) -> ParserResult override {
-    return invokeLambda<typename UnaryLambdaTraits<L>::ArgType>(m_lambda, arg);
-  }
-};
-
-template <typename L> struct BoundFlagLambda : BoundFlagRefBase {
-  L m_lambda;
-
-  static_assert(UnaryLambdaTraits<L>::isValid, "Supplied lambda must take exactly one argument");
-  static_assert(std::is_same<typename UnaryLambdaTraits<L>::ArgType, bool>::value, "flags must be boolean");
-
-  explicit BoundFlagLambda(L const &lambda) : m_lambda(lambda) {
-  }
-
-  auto setFlag(bool flag) -> ParserResult override {
-    return LambdaInvoker<typename UnaryLambdaTraits<L>::ReturnType>::invoke(m_lambda, flag);
-  }
-};
-
-enum class Optionality { Optional, Required };
-
-struct Parser;
-
-class ParserBase {
-public:
-  virtual ~ParserBase() = default;
-  virtual auto validate() const -> Result {
-    return Result::ok();
-  }
-  virtual auto parse(std::string const &exeName, TokenStream const &tokens) const -> InternalParseResult = 0;
-  virtual auto cardinality() const -> size_t {
-    return 1;
-  }
-
-  auto parse(Args const &args) const -> InternalParseResult {
-    return parse(args.exeName(), TokenStream(args));
-  }
-};
-
-template <typename DerivedT> class ComposableParserImpl : public ParserBase {
-public:
-  template <typename T> auto operator|(T const &other) const -> Parser;
-
-  template <typename T> auto operator+(T const &other) const -> Parser;
-};
-
-// Common code and state for Args and Opts
-template <typename DerivedT> class ParserRefImpl : public ComposableParserImpl<DerivedT> {
-protected:
-  Optionality m_optionality = Optionality::Optional;
-  std::shared_ptr<BoundRef> m_ref;
-  std::string m_hint;
-  std::string m_description;
-
-  explicit ParserRefImpl(std::shared_ptr<BoundRef> const &ref) : m_ref(ref) {
-  }
-
-public:
-  template <typename T>
-  ParserRefImpl(T &ref, std::string const &hint) : m_ref(std::make_shared<BoundValueRef<T>>(ref)), m_hint(hint) {
-  }
-
-  template <typename LambdaT>
-  ParserRefImpl(LambdaT const &ref, std::string const &hint)
-      : m_ref(std::make_shared<BoundLambda<LambdaT>>(ref)), m_hint(hint) {
-  }
-
-  auto operator()(std::string const &description) -> DerivedT & {
-    m_description = description;
-    return static_cast<DerivedT &>(*this);
-  }
-
-  auto optional() -> DerivedT & {
-    m_optionality = Optionality::Optional;
-    return static_cast<DerivedT &>(*this);
-  };
-
-  auto required() -> DerivedT & {
-    m_optionality = Optionality::Required;
-    return static_cast<DerivedT &>(*this);
-  };
-
-  auto isOptional() const -> bool {
-    return m_optionality == Optionality::Optional;
-  }
-
-  auto cardinality() const -> size_t override {
-    if (m_ref->isContainer())
-      return 0;
-    else
-      return 1;
-  }
-
-  auto hint() const -> std::string {
-    return m_hint;
-  }
-};
-
-class ExeName : public ComposableParserImpl<ExeName> {
-  std::shared_ptr<std::string> m_name;
-  std::shared_ptr<BoundValueRefBase> m_ref;
-
-  template <typename LambdaT> static auto makeRef(LambdaT const &lambda) -> std::shared_ptr<BoundValueRefBase> {
-    return std::make_shared<BoundLambda<LambdaT>>(lambda);
-  }
-
-public:
-  ExeName() : m_name(std::make_shared<std::string>("<executable>")) {
-  }
-
-  explicit ExeName(std::string &ref) : ExeName() {
-    m_ref = std::make_shared<BoundValueRef<std::string>>(ref);
-  }
-
-  template <typename LambdaT> explicit ExeName(LambdaT const &lambda) : ExeName() {
-    m_ref = std::make_shared<BoundLambda<LambdaT>>(lambda);
-  }
-
-  // The exe name is not parsed out of the normal tokens, but is handled specially
-  auto parse(std::string const &, TokenStream const &tokens) const -> InternalParseResult override {
-    return InternalParseResult::ok(ParseState(ParseResultType::NoMatch, tokens));
-  }
-
-  auto name() const -> std::string {
-    return *m_name;
-  }
-  auto set(std::string const &newName) -> ParserResult {
-
-    auto lastSlash = newName.find_last_of("\\/");
-    auto filename  = (lastSlash == std::string::npos) ? newName : newName.substr(lastSlash + 1);
-
-    *m_name = filename;
-    if (m_ref)
-      return m_ref->setValue(filename);
-    else
-      return ParserResult::ok(ParseResultType::Matched);
-  }
-};
-
-class Arg : public ParserRefImpl<Arg> {
-public:
-  using ParserRefImpl::ParserRefImpl;
-
-  auto parse(std::string const &, TokenStream const &tokens) const -> InternalParseResult override {
-    auto validationResult = validate();
-    if (!validationResult)
-      return InternalParseResult(validationResult);
-
-    auto remainingTokens = tokens;
-    auto const &token    = *remainingTokens;
-    if (token.type != TokenType::Argument)
-      return InternalParseResult::ok(ParseState(ParseResultType::NoMatch, remainingTokens));
-
-    assert(!m_ref->isFlag());
-    auto valueRef = static_cast<detail::BoundValueRefBase *>(m_ref.get());
-
-    auto result = valueRef->setValue(remainingTokens->token);
-    if (!result)
-      return InternalParseResult(result);
-    else
-      return InternalParseResult::ok(ParseState(ParseResultType::Matched, ++remainingTokens));
-  }
-};
-
-inline auto normaliseOpt(std::string const &optName) -> std::string {
-#ifdef CATCH_PLATFORM_WINDOWS
-  if (optName[0] == '/')
-    return "-" + optName.substr(1);
-  else
-#endif
-    return optName;
-}
-
-class Opt : public ParserRefImpl<Opt> {
-protected:
-  std::vector<std::string> m_optNames;
-
-public:
-  template <typename LambdaT>
-  explicit Opt(LambdaT const &ref) : ParserRefImpl(std::make_shared<BoundFlagLambda<LambdaT>>(ref)) {
-  }
-
-  explicit Opt(bool &ref) : ParserRefImpl(std::make_shared<BoundFlagRef>(ref)) {
-  }
-
-  template <typename LambdaT> Opt(LambdaT const &ref, std::string const &hint) : ParserRefImpl(ref, hint) {
-  }
-
-  template <typename T> Opt(T &ref, std::string const &hint) : ParserRefImpl(ref, hint) {
-  }
-
-  auto operator[](std::string const &optName) -> Opt & {
-    m_optNames.push_back(optName);
-    return *this;
-  }
-
-  auto getHelpColumns() const -> std::vector<HelpColumns> {
-    std::ostringstream oss;
-    bool first = true;
-    for (auto const &opt : m_optNames) {
-      if (first)
-        first = false;
-      else
-        oss << ", ";
-      oss << opt;
-    }
-    if (!m_hint.empty())
-      oss << " <" << m_hint << ">";
-    return {{oss.str(), m_description}};
-  }
-
-  auto isMatch(std::string const &optToken) const -> bool {
-    auto normalisedToken = normaliseOpt(optToken);
-    for (auto const &name : m_optNames) {
-      if (normaliseOpt(name) == normalisedToken)
-        return true;
-    }
-    return false;
-  }
-
-  using ParserBase::parse;
-
-  auto parse(std::string const &, TokenStream const &tokens) const -> InternalParseResult override {
-    auto validationResult = validate();
-    if (!validationResult)
-      return InternalParseResult(validationResult);
-
-    auto remainingTokens = tokens;
-    if (remainingTokens && remainingTokens->type == TokenType::Option) {
-      auto const &token = *remainingTokens;
-      if (isMatch(token.token)) {
-        if (m_ref->isFlag()) {
-          auto flagRef = static_cast<detail::BoundFlagRefBase *>(m_ref.get());
-          auto result  = flagRef->setFlag(true);
-          if (!result)
-            return InternalParseResult(result);
-          if (result.value() == ParseResultType::ShortCircuitAll)
-            return InternalParseResult::ok(ParseState(result.value(), remainingTokens));
-        } else {
-          auto valueRef = static_cast<detail::BoundValueRefBase *>(m_ref.get());
-          ++remainingTokens;
-          if (!remainingTokens)
-            return InternalParseResult::runtimeError("Expected argument following " + token.token);
-          auto const &argToken = *remainingTokens;
-          if (argToken.type != TokenType::Argument)
-            return InternalParseResult::runtimeError("Expected argument following " + token.token);
-          auto result = valueRef->setValue(argToken.token);
-          if (!result)
-            return InternalParseResult(result);
-          if (result.value() == ParseResultType::ShortCircuitAll)
-            return InternalParseResult::ok(ParseState(result.value(), remainingTokens));
-        }
-        return InternalParseResult::ok(ParseState(ParseResultType::Matched, ++remainingTokens));
-      }
-    }
-    return InternalParseResult::ok(ParseState(ParseResultType::NoMatch, remainingTokens));
-  }
-
-  auto validate() const -> Result override {
-    if (m_optNames.empty())
-      return Result::logicError("No options supplied to Opt");
-    for (auto const &name : m_optNames) {
-      if (name.empty())
-        return Result::logicError("Option name cannot be empty");
-#ifdef CATCH_PLATFORM_WINDOWS
-      if (name[0] != '-' && name[0] != '/')
-        return Result::logicError("Option name must begin with '-' or '/'");
-#else
-      if (name[0] != '-')
-        return Result::logicError("Option name must begin with '-'");
-#endif
-    }
-    return ParserRefImpl::validate();
-  }
-};
-
-struct Help : Opt {
-  Help(bool &showHelpFlag)
-      : Opt([&](bool flag) {
-          showHelpFlag = flag;
-          return ParserResult::ok(ParseResultType::ShortCircuitAll);
-        }) {
-    static_cast<Opt &> (*this)("display usage information")["-?"]["-h"]["--help"].optional();
-  }
-};
-
-struct Parser : ParserBase {
-
-  mutable ExeName m_exeName;
-  std::vector<Opt> m_options;
-  std::vector<Arg> m_args;
-
-  auto operator|=(ExeName const &exeName) -> Parser & {
-    m_exeName = exeName;
-    return *this;
-  }
-
-  auto operator|=(Arg const &arg) -> Parser & {
-    m_args.push_back(arg);
-    return *this;
-  }
-
-  auto operator|=(Opt const &opt) -> Parser & {
-    m_options.push_back(opt);
-    return *this;
-  }
-
-  auto operator|=(Parser const &other) -> Parser & {
-    m_options.insert(m_options.end(), other.m_options.begin(), other.m_options.end());
-    m_args.insert(m_args.end(), other.m_args.begin(), other.m_args.end());
-    return *this;
-  }
-
-  template <typename T> auto operator|(T const &other) const -> Parser {
-    return Parser(*this) |= other;
-  }
-
-  // Forward deprecated interface with '+' instead of '|'
-  template <typename T> auto operator+=(T const &other) -> Parser & {
-    return operator|=(other);
-  }
-  template <typename T> auto operator+(T const &other) const -> Parser {
-    return operator|(other);
-  }
-
-  auto getHelpColumns() const -> std::vector<HelpColumns> {
-    std::vector<HelpColumns> cols;
-    for (auto const &o : m_options) {
-      auto childCols = o.getHelpColumns();
-      cols.insert(cols.end(), childCols.begin(), childCols.end());
-    }
-    return cols;
-  }
-
-  void writeToStream(std::ostream &os) const {
-    if (!m_exeName.name().empty()) {
-      os << "usage:\n"
-         << "  " << m_exeName.name() << " ";
-      bool required = true, first = true;
-      for (auto const &arg : m_args) {
-        if (first)
-          first = false;
-        else
-          os << " ";
-        if (arg.isOptional() && required) {
-          os << "[";
-          required = false;
-        }
-        os << "<" << arg.hint() << ">";
-        if (arg.cardinality() == 0)
-          os << " ... ";
-      }
-      if (!required)
-        os << "]";
-      if (!m_options.empty())
-        os << " options";
-      os << "\n\nwhere options are:" << std::endl;
-    }
-
-    auto rows           = getHelpColumns();
-    size_t consoleWidth = CATCH_CLARA_CONFIG_CONSOLE_WIDTH;
-    size_t optWidth     = 0;
-    for (auto const &cols : rows)
-      optWidth = (std::max)(optWidth, cols.left.size() + 2);
-
-    optWidth = (std::min)(optWidth, consoleWidth / 2);
-
-    for (auto const &cols : rows) {
-      auto row = TextFlow::Column(cols.left).width(optWidth).indent(2) + TextFlow::Spacer(4) +
-                 TextFlow::Column(cols.right).width(consoleWidth - 7 - optWidth);
-      os << row << std::endl;
-    }
-  }
-
-  friend auto operator<<(std::ostream &os, Parser const &parser) -> std::ostream & {
-    parser.writeToStream(os);
-    return os;
-  }
-
-  auto validate() const -> Result override {
-    for (auto const &opt : m_options) {
-      auto result = opt.validate();
-      if (!result)
-        return result;
-    }
-    for (auto const &arg : m_args) {
-      auto result = arg.validate();
-      if (!result)
-        return result;
-    }
-    return Result::ok();
-  }
-
-  using ParserBase::parse;
-
-  auto parse(std::string const &exeName, TokenStream const &tokens) const -> InternalParseResult override {
-
-    struct ParserInfo {
-      ParserBase const *parser = nullptr;
-      size_t count             = 0;
-    };
-    const size_t totalParsers = m_options.size() + m_args.size();
-    assert(totalParsers < 512);
-    // ParserInfo parseInfos[totalParsers]; // <-- this is what we really want to do
-    ParserInfo parseInfos[512];
-
-    {
-      size_t i = 0;
-      for (auto const &opt : m_options)
-        parseInfos[i++].parser = &opt;
-      for (auto const &arg : m_args)
-        parseInfos[i++].parser = &arg;
-    }
-
-    m_exeName.set(exeName);
-
-    auto result = InternalParseResult::ok(ParseState(ParseResultType::NoMatch, tokens));
-    while (result.value().remainingTokens()) {
-      bool tokenParsed = false;
-
-      for (size_t i = 0; i < totalParsers; ++i) {
-        auto &parseInfo = parseInfos[i];
-        if (parseInfo.parser->cardinality() == 0 || parseInfo.count < parseInfo.parser->cardinality()) {
-          result = parseInfo.parser->parse(exeName, result.value().remainingTokens());
-          if (!result)
-            return result;
-          if (result.value().type() != ParseResultType::NoMatch) {
-            tokenParsed = true;
-            ++parseInfo.count;
-            break;
-          }
-        }
-      }
-
-      if (result.value().type() == ParseResultType::ShortCircuitAll)
-        return result;
-      if (!tokenParsed)
-        return InternalParseResult::runtimeError("Unrecognised token: " + result.value().remainingTokens()->token);
-    }
-    // !TBD Check missing required options
-    return result;
-  }
-};
-
-template <typename DerivedT>
-template <typename T>
-auto ComposableParserImpl<DerivedT>::operator|(T const &other) const -> Parser {
-  return Parser() | static_cast<DerivedT const &>(*this) | other;
-}
-} // namespace detail
-
-// A Combined parser
-using detail::Parser;
-
-// A parser for options
-using detail::Opt;
-
-// A parser for arguments
-using detail::Arg;
-
-// Wrapper for argc, argv from main()
-using detail::Args;
-
-// Specifies the name of the executable
-using detail::ExeName;
-
-// Convenience wrapper for option parser that specifies the help option
-using detail::Help;
-
-// enum of result types from a parse
-using detail::ParseResultType;
-
-// Result type for parser operation
-using detail::ParserResult;
-
-} // namespace clara
-} // namespace Catch
-
-// end clara.hpp
-#ifdef __clang__
-#pragma clang diagnostic pop
-#endif
-
-// Restore Clara's value for console width, if present
-#ifdef CATCH_TEMP_CLARA_CONFIG_CONSOLE_WIDTH
-#define CATCH_CLARA_TEXTFLOW_CONFIG_CONSOLE_WIDTH CATCH_TEMP_CLARA_CONFIG_CONSOLE_WIDTH
-#undef CATCH_TEMP_CLARA_CONFIG_CONSOLE_WIDTH
-#endif
-
-// end catch_clara.h
-namespace Catch {
-
-clara::Parser makeCommandLineParser(ConfigData &config);
-
-} // end namespace Catch
-
-// end catch_commandline.h
-#include <ctime>
-#include <fstream>
-
-namespace Catch {
-
-clara::Parser makeCommandLineParser(ConfigData &config) {
-
-  using namespace clara;
-
-  auto const setWarning = [&](std::string const &warning) {
-    auto warningSet = [&]() {
-      if (warning == "NoAssertions")
-        return WarnAbout::NoAssertions;
-
-      if (warning == "NoTests")
-        return WarnAbout::NoTests;
-
-      return WarnAbout::Nothing;
-    }();
-
-    if (warningSet == WarnAbout::Nothing)
-      return ParserResult::runtimeError("Unrecognised warning: '" + warning + "'");
-    config.warnings = static_cast<WarnAbout::What>(config.warnings | warningSet);
-    return ParserResult::ok(ParseResultType::Matched);
-  };
-  auto const loadTestNamesFromFile = [&](std::string const &filename) {
-    std::ifstream f(filename.c_str());
-    if (!f.is_open())
-      return ParserResult::runtimeError("Unable to load input file: '" + filename + "'");
-
-    std::string line;
-    while (std::getline(f, line)) {
-      line = trim(line);
-      if (!line.empty() && !startsWith(line, '#')) {
-        if (!startsWith(line, '"'))
-          line = '"' + line + '"';
-        config.testsOrTags.push_back(line + ',');
-      }
-    }
-    return ParserResult::ok(ParseResultType::Matched);
-  };
-  auto const setTestOrder = [&](std::string const &order) {
-    if (startsWith("declared", order))
-      config.runOrder = RunTests::InDeclarationOrder;
-    else if (startsWith("lexical", order))
-      config.runOrder = RunTests::InLexicographicalOrder;
-    else if (startsWith("random", order))
-      config.runOrder = RunTests::InRandomOrder;
-    else
-      return clara::ParserResult::runtimeError("Unrecognised ordering: '" + order + "'");
-    return ParserResult::ok(ParseResultType::Matched);
-  };
-  auto const setRngSeed = [&](std::string const &seed) {
-    if (seed != "time")
-      return clara::detail::convertInto(seed, config.rngSeed);
-    config.rngSeed = static_cast<unsigned int>(std::time(nullptr));
-    return ParserResult::ok(ParseResultType::Matched);
-  };
-  auto const setColourUsage = [&](std::string const &useColour) {
-    auto mode = toLower(useColour);
-
-    if (mode == "yes")
-      config.useColour = UseColour::Yes;
-    else if (mode == "no")
-      config.useColour = UseColour::No;
-    else if (mode == "auto")
-      config.useColour = UseColour::Auto;
-    else
-      return ParserResult::runtimeError("colour mode must be one of: auto, yes or no. '" + useColour +
-                                        "' not recognised");
-    return ParserResult::ok(ParseResultType::Matched);
-  };
-  auto const setWaitForKeypress = [&](std::string const &keypress) {
-    auto keypressLc = toLower(keypress);
-    if (keypressLc == "start")
-      config.waitForKeypress = WaitForKeypress::BeforeStart;
-    else if (keypressLc == "exit")
-      config.waitForKeypress = WaitForKeypress::BeforeExit;
-    else if (keypressLc == "both")
-      config.waitForKeypress = WaitForKeypress::BeforeStartAndExit;
-    else
-      return ParserResult::runtimeError("keypress argument must be one of: start, exit or both. '" + keypress +
-                                        "' not recognised");
-    return ParserResult::ok(ParseResultType::Matched);
-  };
-  auto const setVerbosity = [&](std::string const &verbosity) {
-    auto lcVerbosity = toLower(verbosity);
-    if (lcVerbosity == "quiet")
-      config.verbosity = Verbosity::Quiet;
-    else if (lcVerbosity == "normal")
-      config.verbosity = Verbosity::Normal;
-    else if (lcVerbosity == "high")
-      config.verbosity = Verbosity::High;
-    else
-      return ParserResult::runtimeError("Unrecognised verbosity, '" + verbosity + "'");
-    return ParserResult::ok(ParseResultType::Matched);
-  };
-
-  auto cli = ExeName(config.processName) | Help(config.showHelp) |
-             Opt(config.listTests)["-l"]["--list-tests"]("list all/matching test cases") |
-             Opt(config.listTags)["-t"]["--list-tags"]("list all/matching tags") |
-             Opt(config.showSuccessfulTests)["-s"]["--success"]("include successful tests in output") |
-             Opt(config.shouldDebugBreak)["-b"]["--break"]("break into debugger on failure") |
-             Opt(config.noThrow)["-e"]["--nothrow"]("skip exception tests") |
-             Opt(config.showInvisibles)["-i"]["--invisibles"]("show invisibles (tabs, newlines)") |
-             Opt(config.outputFilename, "filename")["-o"]["--out"]("output filename") |
-             Opt(config.reporterName, "name")["-r"]["--reporter"]("reporter to use (defaults to console)") |
-             Opt(config.name, "name")["-n"]["--name"]("suite name") |
-             Opt([&](bool) { config.abortAfter = 1; })["-a"]["--abort"]("abort at first failure") |
-             Opt([&](int x) { config.abortAfter = x; }, "no. failures")["-x"]["--abortx"]("abort after x failures") |
-             Opt(setWarning, "warning name")["-w"]["--warn"]("enable warnings") |
-             Opt([&](bool flag) { config.showDurations = flag ? ShowDurations::Always : ShowDurations::Never; },
-                 "yes|no")["-d"]["--durations"]("show test durations") |
-             Opt(loadTestNamesFromFile, "filename")["-f"]["--input-file"]("load test names to run from a file") |
-             Opt(config.filenamesAsTags)["-#"]["--filenames-as-tags"]("adds a tag for the filename") |
-             Opt(config.sectionsToRun, "section name")["-c"]["--section"]("specify section to run") |
-             Opt(setVerbosity, "quiet|normal|high")["-v"]["--verbosity"]("set output verbosity") |
-             Opt(config.listTestNamesOnly)["--list-test-names-only"]("list all/matching test cases names only") |
-             Opt(config.listReporters)["--list-reporters"]("list all reporters") |
-             Opt(setTestOrder, "decl|lex|rand")["--order"]("test case order (defaults to decl)") |
-             Opt(setRngSeed, "'time'|number")["--rng-seed"]("set a specific seed for random numbers") |
-             Opt(setColourUsage, "yes|no")["--use-colour"]("should output be colourised") |
-             Opt(config.libIdentify)["--libidentify"]("report name and version according to libidentify standard") |
-             Opt(setWaitForKeypress, "start|exit|both")["--wait-for-keypress"]("waits for a keypress before exiting") |
-             Opt(config.benchmarkResolutionMultiple,
-                 "multiplier")["--benchmark-resolution-multiple"]("multiple of clock resolution to run benchmarks")
-
-             | Arg(config.testsOrTags, "test name|pattern|tags")("which test or tests to use");
-
-  return cli;
-}
-
-} // end namespace Catch
-// end catch_commandline.cpp
-// start catch_common.cpp
-
-#include <cstring>
-#include <ostream>
-
-namespace Catch {
-
-bool SourceLineInfo::empty() const noexcept {
-  return file[0] == '\0';
-}
-bool SourceLineInfo::operator==(SourceLineInfo const &other) const noexcept {
-  return line == other.line && (file == other.file || std::strcmp(file, other.file) == 0);
-}
-bool SourceLineInfo::operator<(SourceLineInfo const &other) const noexcept {
-  return line < other.line || (line == other.line && (std::strcmp(file, other.file) < 0));
-}
-
-std::ostream &operator<<(std::ostream &os, SourceLineInfo const &info) {
-#ifndef __GNUG__
-  os << info.file << '(' << info.line << ')';
-#else
-  os << info.file << ':' << info.line;
-#endif
-  return os;
-}
-
-std::string StreamEndStop::operator+() const {
-  return std::string();
-}
-
-NonCopyable::NonCopyable()  = default;
-NonCopyable::~NonCopyable() = default;
-
-} // namespace Catch
-// end catch_common.cpp
-// start catch_config.cpp
-
-// start catch_enforce.h
-
-#include <stdexcept>
-
-#define CATCH_PREPARE_EXCEPTION(type, msg) type((Catch::ReusableStringStream() << msg).str())
-#define CATCH_INTERNAL_ERROR(msg)                                                                                      \
-  throw CATCH_PREPARE_EXCEPTION(std::logic_error, CATCH_INTERNAL_LINEINFO << ": Internal Catch error: " << msg);
-#define CATCH_ERROR(msg) throw CATCH_PREPARE_EXCEPTION(std::domain_error, msg)
-#define CATCH_ENFORCE(condition, msg)                                                                                  \
-  do {                                                                                                                 \
-    if (!(condition))                                                                                                  \
-      CATCH_ERROR(msg);                                                                                                \
-  } while (false)
-
-// end catch_enforce.h
-namespace Catch {
-
-Config::Config(ConfigData const &data) : m_data(data), m_stream(openStream()) {
-  TestSpecParser parser(ITagAliasRegistry::get());
-  if (data.testsOrTags.empty()) {
-    parser.parse("~[.]"); // All not hidden tests
-  } else {
-    m_hasTestFilters = true;
-    for (auto const &testOrTags : data.testsOrTags)
-      parser.parse(testOrTags);
-  }
-  m_testSpec = parser.testSpec();
-}
-
-std::string const &Config::getFilename() const {
-  return m_data.outputFilename;
-}
-
-bool Config::listTests() const {
-  return m_data.listTests;
-}
-bool Config::listTestNamesOnly() const {
-  return m_data.listTestNamesOnly;
-}
-bool Config::listTags() const {
-  return m_data.listTags;
-}
-bool Config::listReporters() const {
-  return m_data.listReporters;
-}
-
-std::string Config::getProcessName() const {
-  return m_data.processName;
-}
-std::string const &Config::getReporterName() const {
-  return m_data.reporterName;
-}
-
-std::vector<std::string> const &Config::getTestsOrTags() const {
-  return m_data.testsOrTags;
-}
-std::vector<std::string> const &Config::getSectionsToRun() const {
-  return m_data.sectionsToRun;
-}
-
-TestSpec const &Config::testSpec() const {
-  return m_testSpec;
-}
-bool Config::hasTestFilters() const {
-  return m_hasTestFilters;
-}
-
-bool Config::showHelp() const {
-  return m_data.showHelp;
-}
-
-// IConfig interface
-bool Config::allowThrows() const {
-  return !m_data.noThrow;
-}
-std::ostream &Config::stream() const {
-  return m_stream->stream();
-}
-std::string Config::name() const {
-  return m_data.name.empty() ? m_data.processName : m_data.name;
-}
-bool Config::includeSuccessfulResults() const {
-  return m_data.showSuccessfulTests;
-}
-bool Config::warnAboutMissingAssertions() const {
-  return !!(m_data.warnings & WarnAbout::NoAssertions);
-}
-bool Config::warnAboutNoTests() const {
-  return !!(m_data.warnings & WarnAbout::NoTests);
-}
-ShowDurations::OrNot Config::showDurations() const {
-  return m_data.showDurations;
-}
-RunTests::InWhatOrder Config::runOrder() const {
-  return m_data.runOrder;
-}
-unsigned int Config::rngSeed() const {
-  return m_data.rngSeed;
-}
-int Config::benchmarkResolutionMultiple() const {
-  return m_data.benchmarkResolutionMultiple;
-}
-UseColour::YesOrNo Config::useColour() const {
-  return m_data.useColour;
-}
-bool Config::shouldDebugBreak() const {
-  return m_data.shouldDebugBreak;
-}
-int Config::abortAfter() const {
-  return m_data.abortAfter;
-}
-bool Config::showInvisibles() const {
-  return m_data.showInvisibles;
-}
-Verbosity Config::verbosity() const {
-  return m_data.verbosity;
-}
-
-IStream const *Config::openStream() {
-  return Catch::makeStream(m_data.outputFilename);
-}
-
-} // end namespace Catch
-// end catch_config.cpp
-// start catch_console_colour.cpp
-
-#if defined(__clang__)
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wexit-time-destructors"
-#endif
-
-// start catch_errno_guard.h
-
-namespace Catch {
-
-class ErrnoGuard {
-public:
-  ErrnoGuard();
-  ~ErrnoGuard();
-
-private:
-  int m_oldErrno;
-};
-
-} // namespace Catch
-
-// end catch_errno_guard.h
-#include <sstream>
-
-namespace Catch {
-namespace {
-
-struct IColourImpl {
-  virtual ~IColourImpl()                     = default;
-  virtual void use(Colour::Code _colourCode) = 0;
-};
-
-struct NoColourImpl : IColourImpl {
-  void use(Colour::Code) {
-  }
-
-  static IColourImpl *instance() {
-    static NoColourImpl s_instance;
-    return &s_instance;
-  }
-};
-
-} // namespace
-} // namespace Catch
-
-#if !defined(CATCH_CONFIG_COLOUR_NONE) && !defined(CATCH_CONFIG_COLOUR_WINDOWS) && !defined(CATCH_CONFIG_COLOUR_ANSI)
-#ifdef CATCH_PLATFORM_WINDOWS
-#define CATCH_CONFIG_COLOUR_WINDOWS
-#else
-#define CATCH_CONFIG_COLOUR_ANSI
-#endif
-#endif
-
-#if defined(CATCH_CONFIG_COLOUR_WINDOWS) /////////////////////////////////////////
-
-namespace Catch {
-namespace {
-
-class Win32ColourImpl : public IColourImpl {
-public:
-  Win32ColourImpl() : stdoutHandle(GetStdHandle(STD_OUTPUT_HANDLE)) {
-    CONSOLE_SCREEN_BUFFER_INFO csbiInfo;
-    GetConsoleScreenBufferInfo(stdoutHandle, &csbiInfo);
-    originalForegroundAttributes =
-        csbiInfo.wAttributes & ~(BACKGROUND_GREEN | BACKGROUND_RED | BACKGROUND_BLUE | BACKGROUND_INTENSITY);
-    originalBackgroundAttributes =
-        csbiInfo.wAttributes & ~(FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_BLUE | FOREGROUND_INTENSITY);
-  }
-
-  virtual void use(Colour::Code _colourCode) override {
-    switch (_colourCode) {
-    case Colour::None:
-      return setTextAttribute(originalForegroundAttributes);
-    case Colour::White:
-      return setTextAttribute(FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_BLUE);
-    case Colour::Red:
-      return setTextAttribute(FOREGROUND_RED);
-    case Colour::Green:
-      return setTextAttribute(FOREGROUND_GREEN);
-    case Colour::Blue:
-      return setTextAttribute(FOREGROUND_BLUE);
-    case Colour::Cyan:
-      return setTextAttribute(FOREGROUND_BLUE | FOREGROUND_GREEN);
-    case Colour::Yellow:
-      return setTextAttribute(FOREGROUND_RED | FOREGROUND_GREEN);
-    case Colour::Grey:
-      return setTextAttribute(0);
-
-    case Colour::LightGrey:
-      return setTextAttribute(FOREGROUND_INTENSITY);
-    case Colour::BrightRed:
-      return setTextAttribute(FOREGROUND_INTENSITY | FOREGROUND_RED);
-    case Colour::BrightGreen:
-      return setTextAttribute(FOREGROUND_INTENSITY | FOREGROUND_GREEN);
-    case Colour::BrightWhite:
-      return setTextAttribute(FOREGROUND_INTENSITY | FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_BLUE);
-    case Colour::BrightYellow:
-      return setTextAttribute(FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_GREEN);
-
-    case Colour::Bright:
-      CATCH_INTERNAL_ERROR("not a colour");
-
-    default:
-      CATCH_ERROR("Unknown colour requested");
-    }
-  }
-
-private:
-  void setTextAttribute(WORD _textAttribute) {
-    SetConsoleTextAttribute(stdoutHandle, _textAttribute | originalBackgroundAttributes);
-  }
-  HANDLE stdoutHandle;
-  WORD originalForegroundAttributes;
-  WORD originalBackgroundAttributes;
-};
-
-IColourImpl *platformColourInstance() {
-  static Win32ColourImpl s_instance;
-
-  IConfigPtr config             = getCurrentContext().getConfig();
-  UseColour::YesOrNo colourMode = config ? config->useColour() : UseColour::Auto;
-  if (colourMode == UseColour::Auto)
-    colourMode = UseColour::Yes;
-  return colourMode == UseColour::Yes ? &s_instance : NoColourImpl::instance();
-}
-
-} // namespace
-} // end namespace Catch
-
-#elif defined(CATCH_CONFIG_COLOUR_ANSI) //////////////////////////////////////
-
-#include <unistd.h>
-
-namespace Catch {
-namespace {
-
-// use POSIX/ ANSI console terminal codes
-// Thanks to Adam Strzelecki for original contribution
-// (http://github.com/nanoant)
-// https://github.com/philsquared/Catch/pull/131
-class PosixColourImpl : public IColourImpl {
-public:
-  virtual void use(Colour::Code _colourCode) override {
-    switch (_colourCode) {
-    case Colour::None:
-    case Colour::White:
-      return setColour("[0m");
-    case Colour::Red:
-      return setColour("[0;31m");
-    case Colour::Green:
-      return setColour("[0;32m");
-    case Colour::Blue:
-      return setColour("[0;34m");
-    case Colour::Cyan:
-      return setColour("[0;36m");
-    case Colour::Yellow:
-      return setColour("[0;33m");
-    case Colour::Grey:
-      return setColour("[1;30m");
-
-    case Colour::LightGrey:
-      return setColour("[0;37m");
-    case Colour::BrightRed:
-      return setColour("[1;31m");
-    case Colour::BrightGreen:
-      return setColour("[1;32m");
-    case Colour::BrightWhite:
-      return setColour("[1;37m");
-    case Colour::BrightYellow:
-      return setColour("[1;33m");
-
-    case Colour::Bright:
-      CATCH_INTERNAL_ERROR("not a colour");
-    default:
-      CATCH_INTERNAL_ERROR("Unknown colour requested");
-    }
-  }
-  static IColourImpl *instance() {
-    static PosixColourImpl s_instance;
-    return &s_instance;
-  }
-
-private:
-  void setColour(const char *_escapeCode) {
-    Catch::cout() << '\033' << _escapeCode;
-  }
-};
-
-bool useColourOnPlatform() {
-  return
-#ifdef CATCH_PLATFORM_MAC
-      !isDebuggerActive() &&
-#endif
-#if !(defined(__DJGPP__) && defined(__STRICT_ANSI__))
-      isatty(STDOUT_FILENO)
-#else
-      false
-#endif
-          ;
-}
-IColourImpl *platformColourInstance() {
-  ErrnoGuard guard;
-  IConfigPtr config = getCurrentContext().getConfig();
-  UseColour::YesOrNo colourMode = config ? config->useColour() : UseColour::Auto;
-  if (colourMode == UseColour::Auto)
-    colourMode = useColourOnPlatform() ? UseColour::Yes : UseColour::No;
-  return colourMode == UseColour::Yes ? PosixColourImpl::instance() : NoColourImpl::instance();
-}
-
-} // namespace
-} // end namespace Catch
-
-#else // not Windows or ANSI ///////////////////////////////////////////////
-
-namespace Catch {
-
-static IColourImpl *platformColourInstance() {
-  return NoColourImpl::instance();
-}
-
-} // end namespace Catch
-
-#endif // Windows/ ANSI/ None
-
-namespace Catch {
-
-Colour::Colour(Code _colourCode) {
-  use(_colourCode);
-}
-Colour::Colour(Colour &&rhs) noexcept {
-  m_moved     = rhs.m_moved;
-  rhs.m_moved = true;
-}
-Colour &Colour::operator=(Colour &&rhs) noexcept {
-  m_moved     = rhs.m_moved;
-  rhs.m_moved = true;
-  return *this;
-}
-
-Colour::~Colour() {
-  if (!m_moved)
-    use(None);
-}
-
-void Colour::use(Code _colourCode) {
-  static IColourImpl *impl = platformColourInstance();
-  impl->use(_colourCode);
-}
-
-std::ostream &operator<<(std::ostream &os, Colour const &) {
-  return os;
-}
-
-} // end namespace Catch
-
-#if defined(__clang__)
-#pragma clang diagnostic pop
-#endif
-
-// end catch_console_colour.cpp
-// start catch_context.cpp
-
-namespace Catch {
-
-class Context : public IMutableContext, NonCopyable {
-
-public: // IContext
-  virtual IResultCapture *getResultCapture() override {
-    return m_resultCapture;
-  }
-  virtual IRunner *getRunner() override {
-    return m_runner;
-  }
-
-  virtual IConfigPtr const &getConfig() const override {
-    return m_config;
-  }
-
-  virtual ~Context() override;
-
-public: // IMutableContext
-  virtual void setResultCapture(IResultCapture *resultCapture) override {
-    m_resultCapture = resultCapture;
-  }
-  virtual void setRunner(IRunner *runner) override {
-    m_runner = runner;
-  }
-  virtual void setConfig(IConfigPtr const &config) override {
-    m_config = config;
-  }
-
-  friend IMutableContext &getCurrentMutableContext();
-
-private:
-  IConfigPtr m_config;
-  IRunner *m_runner               = nullptr;
-  IResultCapture *m_resultCapture = nullptr;
-};
-
-IMutableContext *IMutableContext::currentContext = nullptr;
-
-void IMutableContext::createContext() {
-  currentContext = new Context();
-}
-
-void cleanUpContext() {
-  delete IMutableContext::currentContext;
-  IMutableContext::currentContext = nullptr;
-}
-IContext::~IContext()               = default;
-IMutableContext::~IMutableContext() = default;
-Context::~Context()                 = default;
-} // namespace Catch
-// end catch_context.cpp
-// start catch_debug_console.cpp
-
-// start catch_debug_console.h
-
-#include <string>
-
-namespace Catch {
-void writeToDebugConsole(std::string const &text);
-}
-
-// end catch_debug_console.h
-#ifdef CATCH_PLATFORM_WINDOWS
-
-namespace Catch {
-void writeToDebugConsole(std::string const &text) {
-  ::OutputDebugStringA(text.c_str());
-}
-} // namespace Catch
-
-#else
-
-namespace Catch {
-void writeToDebugConsole(std::string const &text) {
-  // !TBD: Need a version for Mac/ XCode and other IDEs
-  Catch::cout() << text;
-}
-} // namespace Catch
-
-#endif // Platform
-// end catch_debug_console.cpp
-// start catch_debugger.cpp
-
-#ifdef CATCH_PLATFORM_MAC
-
-#include <assert.h>
-#include <cstddef>
-#include <ostream>
-#include <stdbool.h>
-#include <sys/sysctl.h>
-#include <sys/types.h>
-#include <unistd.h>
-
-namespace Catch {
-
-// The following function is taken directly from the following technical note:
-// http://developer.apple.com/library/mac/#qa/qa2004/qa1361.html
-
-// Returns true if the current process is being debugged (either
-// running under the debugger or has a debugger attached post facto).
-bool isDebuggerActive() {
-
-  int mib[4];
-  struct kinfo_proc info;
-  std::size_t size;
-
-  // Initialize the flags so that, if sysctl fails for some bizarre
-  // reason, we get a predictable result.
-
-  info.kp_proc.p_flag = 0;
-
-  // Initialize mib, which tells sysctl the info we want, in this case
-  // we're looking for information about a specific process ID.
-
-  mib[0] = CTL_KERN;
-  mib[1] = KERN_PROC;
-  mib[2] = KERN_PROC_PID;
-  mib[3] = getpid();
-
-  // Call sysctl.
-
-  size = sizeof(info);
-  if (sysctl(mib, sizeof(mib) / sizeof(*mib), &info, &size, nullptr, 0) != 0) {
-    Catch::cerr() << "\n** Call to sysctl failed - unable to determine if debugger is active **\n" << std::endl;
-    return false;
-  }
-
-  // We're being debugged if the P_TRACED flag is set.
-
-  return ((info.kp_proc.p_flag & P_TRACED) != 0);
-}
-} // namespace Catch
-
-#elif defined(CATCH_PLATFORM_LINUX)
-#include <fstream>
-#include <string>
-
-namespace Catch {
-// The standard POSIX way of detecting a debugger is to attempt to
-// ptrace() the process, but this needs to be done from a child and not
-// this process itself to still allow attaching to this process later
-// if wanted, so is rather heavy. Under Linux we have the PID of the
-// "debugger" (which doesn't need to be gdb, of course, it could also
-// be strace, for example) in /proc/$PID/status, so just get it from
-// there instead.
-bool isDebuggerActive() {
-  // Libstdc++ has a bug, where std::ifstream sets errno to 0
-  // This way our users can properly assert over errno values
-  ErrnoGuard guard;
-  std::ifstream in("/proc/self/status");
-  for (std::string line; std::getline(in, line);) {
-    static const int PREFIX_LEN = 11;
-    if (line.compare(0, PREFIX_LEN, "TracerPid:\t") == 0) {
-      // We're traced if the PID is not 0 and no other PID starts
-      // with 0 digit, so it's enough to check for just a single
-      // character.
-      return line.length() > PREFIX_LEN && line[PREFIX_LEN] != '0';
-    }
-  }
-
-  return false;
-}
-} // namespace Catch
-#elif defined(_MSC_VER)
-extern "C" __declspec(dllimport) int __stdcall IsDebuggerPresent();
-namespace Catch {
-bool isDebuggerActive() {
-  return IsDebuggerPresent() != 0;
-}
-} // namespace Catch
-#elif defined(__MINGW32__)
-extern "C" __declspec(dllimport) int __stdcall IsDebuggerPresent();
-namespace Catch {
-bool isDebuggerActive() {
-  return IsDebuggerPresent() != 0;
-}
-} // namespace Catch
-#else
-namespace Catch {
-bool isDebuggerActive() {
-  return false;
-}
-} // namespace Catch
-#endif // Platform
-// end catch_debugger.cpp
-// start catch_decomposer.cpp
-
-namespace Catch {
-
-ITransientExpression::~ITransientExpression() = default;
-
-void formatReconstructedExpression(std::ostream &os, std::string const &lhs, StringRef op, std::string const &rhs) {
-  if (lhs.size() + rhs.size() < 40 && lhs.find('\n') == std::string::npos && rhs.find('\n') == std::string::npos)
-    os << lhs << " " << op << " " << rhs;
-  else
-    os << lhs << "\n" << op << "\n" << rhs;
-}
-} // namespace Catch
-// end catch_decomposer.cpp
-// start catch_errno_guard.cpp
-
-#include <cerrno>
-
-namespace Catch {
-ErrnoGuard::ErrnoGuard() : m_oldErrno(errno) {
-}
-ErrnoGuard::~ErrnoGuard() {
-  errno = m_oldErrno;
-}
-} // namespace Catch
-// end catch_errno_guard.cpp
-// start catch_exception_translator_registry.cpp
-
-// start catch_exception_translator_registry.h
-
-#include <memory>
-#include <string>
-#include <vector>
-
-namespace Catch {
-
-class ExceptionTranslatorRegistry : public IExceptionTranslatorRegistry {
-public:
-  ~ExceptionTranslatorRegistry();
-  virtual void registerTranslator(const IExceptionTranslator *translator);
-  virtual std::string translateActiveException() const override;
-  std::string tryTranslators() const;
-
-private:
-  std::vector<std::unique_ptr<IExceptionTranslator const>> m_translators;
-};
-} // namespace Catch
-
-// end catch_exception_translator_registry.h
-#ifdef __OBJC__
-#import "Foundation/Foundation.h"
-#endif
-
-namespace Catch {
-
-ExceptionTranslatorRegistry::~ExceptionTranslatorRegistry() {
-}
-
-void ExceptionTranslatorRegistry::registerTranslator(const IExceptionTranslator *translator) {
-  m_translators.push_back(std::unique_ptr<const IExceptionTranslator>(translator));
-}
-
-std::string ExceptionTranslatorRegistry::translateActiveException() const {
-  try {
-#ifdef __OBJC__
-    // In Objective-C try objective-c exceptions first
-    @try {
-      return tryTranslators();
-    } @catch (NSException *exception) {
-      return Catch::Detail::stringify([exception description]);
-    }
-#else
-    // Compiling a mixed mode project with MSVC means that CLR
-    // exceptions will be caught in (...) as well. However, these
-    // do not fill-in std::current_exception and thus lead to crash
-    // when attempting rethrow.
-    // /EHa switch also causes structured exceptions to be caught
-    // here, but they fill-in current_exception properly, so
-    // at worst the output should be a little weird, instead of
-    // causing a crash.
-    if (std::current_exception() == nullptr) {
-      return "Non C++ exception. Possibly a CLR exception.";
-    }
-    return tryTranslators();
-#endif
-  } catch (TestFailureException &) {
-    std::rethrow_exception(std::current_exception());
-  } catch (std::exception &ex) {
-    return ex.what();
-  } catch (std::string &msg) {
-    return msg;
-  } catch (const char *msg) {
-    return msg;
-  } catch (...) {
-    return "Unknown exception";
-  }
-}
-
-std::string ExceptionTranslatorRegistry::tryTranslators() const {
-  if (m_translators.empty())
-    std::rethrow_exception(std::current_exception());
-  else
-    return m_translators[0]->translate(m_translators.begin() + 1, m_translators.end());
-}
-} // namespace Catch
-// end catch_exception_translator_registry.cpp
-// start catch_fatal_condition.cpp
-
-#if defined(__GNUC__)
-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Wmissing-field-initializers"
-#endif
-
-#if defined(CATCH_CONFIG_WINDOWS_SEH) || defined(CATCH_CONFIG_POSIX_SIGNALS)
-
-namespace {
-// Report the error condition
-void reportFatal(char const *const message) {
-  Catch::getCurrentContext().getResultCapture()->handleFatalErrorCondition(message);
-}
-} // namespace
-
-#endif // signals/SEH handling
-
-#if defined(CATCH_CONFIG_WINDOWS_SEH)
-
-namespace Catch {
-struct SignalDefs {
-  DWORD id;
-  const char *name;
-};
-
-// There is no 1-1 mapping between signals and windows exceptions.
-// Windows can easily distinguish between SO and SigSegV,
-// but SigInt, SigTerm, etc are handled differently.
-static SignalDefs signalDefs[] = {
-    {EXCEPTION_ILLEGAL_INSTRUCTION, "SIGILL - Illegal instruction signal"},
-    {EXCEPTION_STACK_OVERFLOW, "SIGSEGV - Stack overflow"},
-    {EXCEPTION_ACCESS_VIOLATION, "SIGSEGV - Segmentation violation signal"},
-    {EXCEPTION_INT_DIVIDE_BY_ZERO, "Divide by zero error"},
-};
-
-LONG CALLBACK FatalConditionHandler::handleVectoredException(PEXCEPTION_POINTERS ExceptionInfo) {
-  for (auto const &def : signalDefs) {
-    if (ExceptionInfo->ExceptionRecord->ExceptionCode == def.id) {
-      reportFatal(def.name);
-    }
-  }
-  // If its not an exception we care about, pass it along.
-  // This stops us from eating debugger breaks etc.
-  return EXCEPTION_CONTINUE_SEARCH;
-}
-
-FatalConditionHandler::FatalConditionHandler() {
-  isSet = true;
-  // 32k seems enough for Catch to handle stack overflow,
-  // but the value was found experimentally, so there is no strong guarantee
-  guaranteeSize          = 32 * 1024;
-  exceptionHandlerHandle = nullptr;
-  // Register as first handler in current chain
-  exceptionHandlerHandle = AddVectoredExceptionHandler(1, handleVectoredException);
-  // Pass in guarantee size to be filled
-  SetThreadStackGuarantee(&guaranteeSize);
-}
-
-void FatalConditionHandler::reset() {
-  if (isSet) {
-    RemoveVectoredExceptionHandler(exceptionHandlerHandle);
-    SetThreadStackGuarantee(&guaranteeSize);
-    exceptionHandlerHandle = nullptr;
-    isSet                  = false;
-  }
-}
-
-FatalConditionHandler::~FatalConditionHandler() {
-  reset();
-}
-
-bool FatalConditionHandler::isSet                   = false;
-ULONG FatalConditionHandler::guaranteeSize          = 0;
-PVOID FatalConditionHandler::exceptionHandlerHandle = nullptr;
-
-} // namespace Catch
-
-#elif defined(CATCH_CONFIG_POSIX_SIGNALS)
-
-namespace Catch {
-
-struct SignalDefs {
-  int id;
-  const char *name;
-};
-
-// 32kb for the alternate stack seems to be sufficient. However, this value
-// is experimentally determined, so that's not guaranteed.
-constexpr static std::size_t sigStackSize = 32768 >= MINSIGSTKSZ ? 32768 : MINSIGSTKSZ;
-
-static SignalDefs signalDefs[] = {
-    {SIGINT, "SIGINT - Terminal interrupt signal"},    {SIGILL, "SIGILL - Illegal instruction signal"},
-    {SIGFPE, "SIGFPE - Floating point error signal"},  {SIGSEGV, "SIGSEGV - Segmentation violation signal"},
-    {SIGTERM, "SIGTERM - Termination request signal"}, {SIGABRT, "SIGABRT - Abort (abnormal termination) signal"}};
-
-void FatalConditionHandler::handleSignal(int sig) {
-  char const *name = "<unknown signal>";
-  for (auto const &def : signalDefs) {
-    if (sig == def.id) {
-      name = def.name;
-      break;
-    }
-  }
-  reset();
-  reportFatal(name);
-  raise(sig);
-}
-
-FatalConditionHandler::FatalConditionHandler() {
-  isSet = true;
-  stack_t sigStack;
-  sigStack.ss_sp = altStackMem;
-  sigStack.ss_size = sigStackSize;
-  sigStack.ss_flags = 0;
-  sigaltstack(&sigStack, &oldSigStack);
-  struct sigaction sa = {};
-
-  sa.sa_handler = handleSignal;
-  sa.sa_flags = SA_ONSTACK;
-  for (std::size_t i = 0; i < sizeof(signalDefs) / sizeof(SignalDefs); ++i) {
-    sigaction(signalDefs[i].id, &sa, &oldSigActions[i]);
-  }
-}
-
-FatalConditionHandler::~FatalConditionHandler() {
-  reset();
-}
-
-void FatalConditionHandler::reset() {
-  if (isSet) {
-    // Set signals back to previous values -- hopefully nobody overwrote them in the meantime
-    for (std::size_t i = 0; i < sizeof(signalDefs) / sizeof(SignalDefs); ++i) {
-      sigaction(signalDefs[i].id, &oldSigActions[i], nullptr);
-    }
-    // Return the old stack
-    sigaltstack(&oldSigStack, nullptr);
-    isSet = false;
-  }
-}
-
-bool FatalConditionHandler::isSet = false;
-struct sigaction FatalConditionHandler::oldSigActions[sizeof(signalDefs) / sizeof(SignalDefs)] = {};
-stack_t FatalConditionHandler::oldSigStack = {};
-char FatalConditionHandler::altStackMem[sigStackSize] = {};
-
-} // namespace Catch
-
-#else
-
-namespace Catch {
-void FatalConditionHandler::reset() {
-}
-} // namespace Catch
-
-#endif // signals/SEH handling
-
-#if defined(__GNUC__)
-#pragma GCC diagnostic pop
-#endif
-// end catch_fatal_condition.cpp
-// start catch_interfaces_capture.cpp
-
-namespace Catch {
-IResultCapture::~IResultCapture() = default;
-}
-// end catch_interfaces_capture.cpp
-// start catch_interfaces_config.cpp
-
-namespace Catch {
-IConfig::~IConfig() = default;
-}
-// end catch_interfaces_config.cpp
-// start catch_interfaces_exception.cpp
-
-namespace Catch {
-IExceptionTranslator::~IExceptionTranslator()                 = default;
-IExceptionTranslatorRegistry::~IExceptionTranslatorRegistry() = default;
-} // namespace Catch
-// end catch_interfaces_exception.cpp
-// start catch_interfaces_registry_hub.cpp
-
-namespace Catch {
-IRegistryHub::~IRegistryHub()               = default;
-IMutableRegistryHub::~IMutableRegistryHub() = default;
-} // namespace Catch
-// end catch_interfaces_registry_hub.cpp
-// start catch_interfaces_reporter.cpp
-
-// start catch_reporter_listening.h
-
-namespace Catch {
-
-class ListeningReporter : public IStreamingReporter {
-  using Reporters = std::vector<IStreamingReporterPtr>;
-  Reporters m_listeners;
-  IStreamingReporterPtr m_reporter = nullptr;
-
-public:
-  void addListener(IStreamingReporterPtr &&listener);
-  void addReporter(IStreamingReporterPtr &&reporter);
-
-public: // IStreamingReporter
-  ReporterPreferences getPreferences() const override;
-
-  void noMatchingTestCases(std::string const &spec) override;
-
-  static std::set<Verbosity> getSupportedVerbosities();
-
-  void benchmarkStarting(BenchmarkInfo const &benchmarkInfo) override;
-  void benchmarkEnded(BenchmarkStats const &benchmarkStats) override;
-
-  void testRunStarting(TestRunInfo const &testRunInfo) override;
-  void testGroupStarting(GroupInfo const &groupInfo) override;
-  void testCaseStarting(TestCaseInfo const &testInfo) override;
-  void sectionStarting(SectionInfo const &sectionInfo) override;
-  void assertionStarting(AssertionInfo const &assertionInfo) override;
-
-  // The return value indicates if the messages buffer should be cleared:
-  bool assertionEnded(AssertionStats const &assertionStats) override;
-  void sectionEnded(SectionStats const &sectionStats) override;
-  void testCaseEnded(TestCaseStats const &testCaseStats) override;
-  void testGroupEnded(TestGroupStats const &testGroupStats) override;
-  void testRunEnded(TestRunStats const &testRunStats) override;
-
-  void skipTest(TestCaseInfo const &testInfo) override;
-  bool isMulti() const override;
-};
-
-} // end namespace Catch
-
-// end catch_reporter_listening.h
-namespace Catch {
-
-ReporterConfig::ReporterConfig(IConfigPtr const &_fullConfig)
-    : m_stream(&_fullConfig->stream()), m_fullConfig(_fullConfig) {
-}
-
-ReporterConfig::ReporterConfig(IConfigPtr const &_fullConfig, std::ostream &_stream)
-    : m_stream(&_stream), m_fullConfig(_fullConfig) {
-}
-
-std::ostream &ReporterConfig::stream() const {
-  return *m_stream;
-}
-IConfigPtr ReporterConfig::fullConfig() const {
-  return m_fullConfig;
-}
-
-TestRunInfo::TestRunInfo(std::string const &_name) : name(_name) {
-}
-
-GroupInfo::GroupInfo(std::string const &_name, std::size_t _groupIndex, std::size_t _groupsCount)
-    : name(_name), groupIndex(_groupIndex), groupsCounts(_groupsCount) {
-}
-
-AssertionStats::AssertionStats(AssertionResult const &_assertionResult, std::vector<MessageInfo> const &_infoMessages,
-                               Totals const &_totals)
-    : assertionResult(_assertionResult), infoMessages(_infoMessages), totals(_totals) {
-  assertionResult.m_resultData.lazyExpression.m_transientExpression =
-      _assertionResult.m_resultData.lazyExpression.m_transientExpression;
-
-  if (assertionResult.hasMessage()) {
-    // Copy message into messages list.
-    // !TBD This should have been done earlier, somewhere
-    MessageBuilder builder(assertionResult.getTestMacroName(), assertionResult.getSourceInfo(),
-                           assertionResult.getResultType());
-    builder << assertionResult.getMessage();
-    builder.m_info.message = builder.m_stream.str();
-
-    infoMessages.push_back(builder.m_info);
-  }
-}
-
-AssertionStats::~AssertionStats() = default;
-
-SectionStats::SectionStats(SectionInfo const &_sectionInfo, Counts const &_assertions, double _durationInSeconds,
-                           bool _missingAssertions)
-    : sectionInfo(_sectionInfo), assertions(_assertions), durationInSeconds(_durationInSeconds),
-      missingAssertions(_missingAssertions) {
-}
-
-SectionStats::~SectionStats() = default;
-
-TestCaseStats::TestCaseStats(TestCaseInfo const &_testInfo, Totals const &_totals, std::string const &_stdOut,
-                             std::string const &_stdErr, bool _aborting)
-    : testInfo(_testInfo), totals(_totals), stdOut(_stdOut), stdErr(_stdErr), aborting(_aborting) {
-}
-
-TestCaseStats::~TestCaseStats() = default;
-
-TestGroupStats::TestGroupStats(GroupInfo const &_groupInfo, Totals const &_totals, bool _aborting)
-    : groupInfo(_groupInfo), totals(_totals), aborting(_aborting) {
-}
-
-TestGroupStats::TestGroupStats(GroupInfo const &_groupInfo) : groupInfo(_groupInfo), aborting(false) {
-}
-
-TestGroupStats::~TestGroupStats() = default;
-
-TestRunStats::TestRunStats(TestRunInfo const &_runInfo, Totals const &_totals, bool _aborting)
-    : runInfo(_runInfo), totals(_totals), aborting(_aborting) {
-}
-
-TestRunStats::~TestRunStats() = default;
-
-void IStreamingReporter::fatalErrorEncountered(StringRef) {
-}
-bool IStreamingReporter::isMulti() const {
-  return false;
-}
-
-IReporterFactory::~IReporterFactory()   = default;
-IReporterRegistry::~IReporterRegistry() = default;
-
-} // end namespace Catch
-// end catch_interfaces_reporter.cpp
-// start catch_interfaces_runner.cpp
-
-namespace Catch {
-IRunner::~IRunner() = default;
-}
-// end catch_interfaces_runner.cpp
-// start catch_interfaces_testcase.cpp
-
-namespace Catch {
-ITestInvoker::~ITestInvoker()           = default;
-ITestCaseRegistry::~ITestCaseRegistry() = default;
-} // namespace Catch
-// end catch_interfaces_testcase.cpp
-// start catch_leak_detector.cpp
-
-#ifdef CATCH_CONFIG_WINDOWS_CRTDBG
-#include <crtdbg.h>
-
-namespace Catch {
-
-LeakDetector::LeakDetector() {
-  int flag = _CrtSetDbgFlag(_CRTDBG_REPORT_FLAG);
-  flag |= _CRTDBG_LEAK_CHECK_DF;
-  flag |= _CRTDBG_ALLOC_MEM_DF;
-  _CrtSetDbgFlag(flag);
-  _CrtSetReportMode(_CRT_WARN, _CRTDBG_MODE_FILE | _CRTDBG_MODE_DEBUG);
-  _CrtSetReportFile(_CRT_WARN, _CRTDBG_FILE_STDERR);
-  // Change this to leaking allocation's number to break there
-  _CrtSetBreakAlloc(-1);
-}
-} // namespace Catch
-
-#else
-
-Catch::LeakDetector::LeakDetector() {
-}
-
-#endif
-// end catch_leak_detector.cpp
-// start catch_list.cpp
-
-// start catch_list.h
-
-#include <set>
-
-namespace Catch {
-
-std::size_t listTests(Config const &config);
-
-std::size_t listTestsNamesOnly(Config const &config);
-
-struct TagInfo {
-  void add(std::string const &spelling);
-  std::string all() const;
-
-  std::set<std::string> spellings;
-  std::size_t count = 0;
-};
-
-std::size_t listTags(Config const &config);
-
-std::size_t listReporters(Config const & /*config*/);
-
-Option<std::size_t> list(Config const &config);
-
-} // end namespace Catch
-
-// end catch_list.h
-// start catch_text.h
-
-namespace Catch {
-using namespace clara::TextFlow;
-}
-
-// end catch_text.h
-#include <algorithm>
-#include <iomanip>
-#include <limits>
-
-namespace Catch {
-
-std::size_t listTests(Config const &config) {
-  TestSpec testSpec = config.testSpec();
-  if (config.hasTestFilters())
-    Catch::cout() << "Matching test cases:\n";
-  else {
-    Catch::cout() << "All available test cases:\n";
-  }
-
-  auto matchedTestCases = filterTests(getAllTestCasesSorted(config), testSpec, config);
-  for (auto const &testCaseInfo : matchedTestCases) {
-    Colour::Code colour = testCaseInfo.isHidden() ? Colour::SecondaryText : Colour::None;
-    Colour colourGuard(colour);
-
-    Catch::cout() << Column(testCaseInfo.name).initialIndent(2).indent(4) << "\n";
-    if (config.verbosity() >= Verbosity::High) {
-      Catch::cout() << Column(Catch::Detail::stringify(testCaseInfo.lineInfo)).indent(4) << std::endl;
-      std::string description = testCaseInfo.description;
-      if (description.empty())
-        description = "(NO DESCRIPTION)";
-      Catch::cout() << Column(description).indent(4) << std::endl;
-    }
-    if (!testCaseInfo.tags.empty())
-      Catch::cout() << Column(testCaseInfo.tagsAsString()).indent(6) << "\n";
-  }
-
-  if (!config.hasTestFilters())
-    Catch::cout() << pluralise(matchedTestCases.size(), "test case") << '\n' << std::endl;
-  else
-    Catch::cout() << pluralise(matchedTestCases.size(), "matching test case") << '\n' << std::endl;
-  return matchedTestCases.size();
-}
-
-std::size_t listTestsNamesOnly(Config const &config) {
-  TestSpec testSpec                      = config.testSpec();
-  std::size_t matchedTests               = 0;
-  std::vector<TestCase> matchedTestCases = filterTests(getAllTestCasesSorted(config), testSpec, config);
-  for (auto const &testCaseInfo : matchedTestCases) {
-    matchedTests++;
-    if (startsWith(testCaseInfo.name, '#'))
-      Catch::cout() << '"' << testCaseInfo.name << '"';
-    else
-      Catch::cout() << testCaseInfo.name;
-    if (config.verbosity() >= Verbosity::High)
-      Catch::cout() << "\t@" << testCaseInfo.lineInfo;
-    Catch::cout() << std::endl;
-  }
-  return matchedTests;
-}
-
-void TagInfo::add(std::string const &spelling) {
-  ++count;
-  spellings.insert(spelling);
-}
-
-std::string TagInfo::all() const {
-  std::string out;
-  for (auto const &spelling : spellings)
-    out += "[" + spelling + "]";
-  return out;
-}
-
-std::size_t listTags(Config const &config) {
-  TestSpec testSpec = config.testSpec();
-  if (config.hasTestFilters())
-    Catch::cout() << "Tags for matching test cases:\n";
-  else {
-    Catch::cout() << "All available tags:\n";
-  }
-
-  std::map<std::string, TagInfo> tagCounts;
-
-  std::vector<TestCase> matchedTestCases = filterTests(getAllTestCasesSorted(config), testSpec, config);
-  for (auto const &testCase : matchedTestCases) {
-    for (auto const &tagName : testCase.getTestCaseInfo().tags) {
-      std::string lcaseTagName = toLower(tagName);
-      auto countIt             = tagCounts.find(lcaseTagName);
-      if (countIt == tagCounts.end())
-        countIt = tagCounts.insert(std::make_pair(lcaseTagName, TagInfo())).first;
-      countIt->second.add(tagName);
-    }
-  }
-
-  for (auto const &tagCount : tagCounts) {
-    ReusableStringStream rss;
-    rss << "  " << std::setw(2) << tagCount.second.count << "  ";
-    auto str = rss.str();
-    auto wrapper =
-        Column(tagCount.second.all()).initialIndent(0).indent(str.size()).width(CATCH_CONFIG_CONSOLE_WIDTH - 10);
-    Catch::cout() << str << wrapper << '\n';
-  }
-  Catch::cout() << pluralise(tagCounts.size(), "tag") << '\n' << std::endl;
-  return tagCounts.size();
-}
-
-std::size_t listReporters(Config const & /*config*/) {
-  Catch::cout() << "Available reporters:\n";
-  IReporterRegistry::FactoryMap const &factories = getRegistryHub().getReporterRegistry().getFactories();
-  std::size_t maxNameLen                         = 0;
-  for (auto const &factoryKvp : factories)
-    maxNameLen = (std::max)(maxNameLen, factoryKvp.first.size());
-
-  for (auto const &factoryKvp : factories) {
-    Catch::cout() << Column(factoryKvp.first + ":").indent(2).width(5 + maxNameLen) +
-                         Column(factoryKvp.second->getDescription())
-                             .initialIndent(0)
-                             .indent(2)
-                             .width(CATCH_CONFIG_CONSOLE_WIDTH - maxNameLen - 8)
-                  << "\n";
-  }
-  Catch::cout() << std::endl;
-  return factories.size();
-}
-
-Option<std::size_t> list(Config const &config) {
-  Option<std::size_t> listedCount;
-  if (config.listTests())
-    listedCount = listedCount.valueOr(0) + listTests(config);
-  if (config.listTestNamesOnly())
-    listedCount = listedCount.valueOr(0) + listTestsNamesOnly(config);
-  if (config.listTags())
-    listedCount = listedCount.valueOr(0) + listTags(config);
-  if (config.listReporters())
-    listedCount = listedCount.valueOr(0) + listReporters(config);
-  return listedCount;
-}
-
-} // end namespace Catch
-// end catch_list.cpp
-// start catch_matchers.cpp
-
-namespace Catch {
-namespace Matchers {
-namespace Impl {
-
-std::string MatcherUntypedBase::toString() const {
-  if (m_cachedToString.empty())
-    m_cachedToString = describe();
-  return m_cachedToString;
-}
-
-MatcherUntypedBase::~MatcherUntypedBase() = default;
-
-} // namespace Impl
-} // namespace Matchers
-
-using namespace Matchers;
-using Matchers::Impl::MatcherBase;
-
-} // namespace Catch
-// end catch_matchers.cpp
-// start catch_matchers_floating.cpp
-
-// start catch_to_string.hpp
-
-#include <string>
-
-namespace Catch {
-template <typename T> std::string to_string(T const &t) {
-#if defined(CATCH_CONFIG_CPP11_TO_STRING)
-  return std::to_string(t);
-#else
-  ReusableStringStream rss;
-  rss << t;
-  return rss.str();
-#endif
-}
-} // end namespace Catch
-
-// end catch_to_string.hpp
-#include <cstdint>
-#include <cstdlib>
-#include <cstring>
-#include <stdexcept>
-
-namespace Catch {
-namespace Matchers {
-namespace Floating {
-enum class FloatingPointKind : uint8_t { Float, Double };
-}
-} // namespace Matchers
-} // namespace Catch
-
-namespace {
-
-template <typename T> struct Converter;
-
-template <> struct Converter<float> {
-  static_assert(sizeof(float) == sizeof(int32_t), "Important ULP matcher assumption violated");
-  Converter(float f) {
-    std::memcpy(&i, &f, sizeof(f));
-  }
-  int32_t i;
-};
-
-template <> struct Converter<double> {
-  static_assert(sizeof(double) == sizeof(int64_t), "Important ULP matcher assumption violated");
-  Converter(double d) {
-    std::memcpy(&i, &d, sizeof(d));
-  }
-  int64_t i;
-};
-
-template <typename T> auto convert(T t) -> Converter<T> {
-  return Converter<T>(t);
-}
-
-template <typename FP> bool almostEqualUlps(FP lhs, FP rhs, int maxUlpDiff) {
-  // Comparison with NaN should always be false.
-  // This way we can rule it out before getting into the ugly details
-  if (std::isnan(lhs) || std::isnan(rhs)) {
-    return false;
-  }
-
-  auto lc = convert(lhs);
-  auto rc = convert(rhs);
-
-  if ((lc.i < 0) != (rc.i < 0)) {
-    // Potentially we can have +0 and -0
-    return lhs == rhs;
-  }
-
-  auto ulpDiff = std::abs(lc.i - rc.i);
-  return ulpDiff <= maxUlpDiff;
-}
-
-} // namespace
-
-namespace Catch {
-namespace Matchers {
-namespace Floating {
-WithinAbsMatcher::WithinAbsMatcher(double target, double margin) : m_target{target}, m_margin{margin} {
-  if (m_margin < 0) {
-    throw std::domain_error("Allowed margin difference has to be >= 0");
-  }
-}
-
-// Performs equivalent check of std::fabs(lhs - rhs) <= margin
-// But without the subtraction to allow for INFINITY in comparison
-bool WithinAbsMatcher::match(double const &matchee) const {
-  return (matchee + m_margin >= m_target) && (m_target + m_margin >= matchee);
-}
-
-std::string WithinAbsMatcher::describe() const {
-  return "is within " + ::Catch::Detail::stringify(m_margin) + " of " + ::Catch::Detail::stringify(m_target);
-}
-
-WithinUlpsMatcher::WithinUlpsMatcher(double target, int ulps, FloatingPointKind baseType)
-    : m_target{target}, m_ulps{ulps}, m_type{baseType} {
-  if (m_ulps < 0) {
-    throw std::domain_error("Allowed ulp difference has to be >= 0");
-  }
-}
-
-bool WithinUlpsMatcher::match(double const &matchee) const {
-  switch (m_type) {
-  case FloatingPointKind::Float:
-    return almostEqualUlps<float>(static_cast<float>(matchee), static_cast<float>(m_target), m_ulps);
-  case FloatingPointKind::Double:
-    return almostEqualUlps<double>(matchee, m_target, m_ulps);
-  default:
-    throw std::domain_error("Unknown FloatingPointKind value");
-  }
-}
-
-std::string WithinUlpsMatcher::describe() const {
-  return "is within " + Catch::to_string(m_ulps) + " ULPs of " + ::Catch::Detail::stringify(m_target) +
-         ((m_type == FloatingPointKind::Float) ? "f" : "");
-}
-
-} // namespace Floating
-
-Floating::WithinUlpsMatcher WithinULP(double target, int maxUlpDiff) {
-  return Floating::WithinUlpsMatcher(target, maxUlpDiff, Floating::FloatingPointKind::Double);
-}
-
-Floating::WithinUlpsMatcher WithinULP(float target, int maxUlpDiff) {
-  return Floating::WithinUlpsMatcher(target, maxUlpDiff, Floating::FloatingPointKind::Float);
-}
-
-Floating::WithinAbsMatcher WithinAbs(double target, double margin) {
-  return Floating::WithinAbsMatcher(target, margin);
-}
-
-} // namespace Matchers
-} // namespace Catch
-
-// end catch_matchers_floating.cpp
-// start catch_matchers_generic.cpp
-
-std::string Catch::Matchers::Generic::Detail::finalizeDescription(const std::string &desc) {
-  if (desc.empty()) {
-    return "matches undescribed predicate";
-  } else {
-    return "matches predicate: \"" + desc + '"';
-  }
-}
-// end catch_matchers_generic.cpp
-// start catch_matchers_string.cpp
-
-#include <regex>
-
-namespace Catch {
-namespace Matchers {
-
-namespace StdString {
-
-CasedString::CasedString(std::string const &str, CaseSensitive::Choice caseSensitivity)
-    : m_caseSensitivity(caseSensitivity), m_str(adjustString(str)) {
-}
-std::string CasedString::adjustString(std::string const &str) const {
-  return m_caseSensitivity == CaseSensitive::No ? toLower(str) : str;
-}
-std::string CasedString::caseSensitivitySuffix() const {
-  return m_caseSensitivity == CaseSensitive::No ? " (case insensitive)" : std::string();
-}
-
-StringMatcherBase::StringMatcherBase(std::string const &operation, CasedString const &comparator)
-    : m_comparator(comparator), m_operation(operation) {
-}
-
-std::string StringMatcherBase::describe() const {
-  std::string description;
-  description.reserve(5 + m_operation.size() + m_comparator.m_str.size() + m_comparator.caseSensitivitySuffix().size());
-  description += m_operation;
-  description += ": \"";
-  description += m_comparator.m_str;
-  description += "\"";
-  description += m_comparator.caseSensitivitySuffix();
-  return description;
-}
-
-EqualsMatcher::EqualsMatcher(CasedString const &comparator) : StringMatcherBase("equals", comparator) {
-}
-
-bool EqualsMatcher::match(std::string const &source) const {
-  return m_comparator.adjustString(source) == m_comparator.m_str;
-}
-
-ContainsMatcher::ContainsMatcher(CasedString const &comparator) : StringMatcherBase("contains", comparator) {
-}
-
-bool ContainsMatcher::match(std::string const &source) const {
-  return contains(m_comparator.adjustString(source), m_comparator.m_str);
-}
-
-StartsWithMatcher::StartsWithMatcher(CasedString const &comparator) : StringMatcherBase("starts with", comparator) {
-}
-
-bool StartsWithMatcher::match(std::string const &source) const {
-  return startsWith(m_comparator.adjustString(source), m_comparator.m_str);
-}
-
-EndsWithMatcher::EndsWithMatcher(CasedString const &comparator) : StringMatcherBase("ends with", comparator) {
-}
-
-bool EndsWithMatcher::match(std::string const &source) const {
-  return endsWith(m_comparator.adjustString(source), m_comparator.m_str);
-}
-
-RegexMatcher::RegexMatcher(std::string regex, CaseSensitive::Choice caseSensitivity)
-    : m_regex(std::move(regex)), m_caseSensitivity(caseSensitivity) {
-}
-
-bool RegexMatcher::match(std::string const &matchee) const {
-  auto flags = std::regex::ECMAScript; // ECMAScript is the default syntax option anyway
-  if (m_caseSensitivity == CaseSensitive::Choice::No) {
-    flags |= std::regex::icase;
-  }
-  auto reg = std::regex(m_regex, flags);
-  return std::regex_match(matchee, reg);
-}
-
-std::string RegexMatcher::describe() const {
-  return "matches " + ::Catch::Detail::stringify(m_regex) +
-         ((m_caseSensitivity == CaseSensitive::Choice::Yes) ? " case sensitively" : " case insensitively");
-}
-
-} // namespace StdString
-
-StdString::EqualsMatcher Equals(std::string const &str, CaseSensitive::Choice caseSensitivity) {
-  return StdString::EqualsMatcher(StdString::CasedString(str, caseSensitivity));
-}
-StdString::ContainsMatcher Contains(std::string const &str, CaseSensitive::Choice caseSensitivity) {
-  return StdString::ContainsMatcher(StdString::CasedString(str, caseSensitivity));
-}
-StdString::EndsWithMatcher EndsWith(std::string const &str, CaseSensitive::Choice caseSensitivity) {
-  return StdString::EndsWithMatcher(StdString::CasedString(str, caseSensitivity));
-}
-StdString::StartsWithMatcher StartsWith(std::string const &str, CaseSensitive::Choice caseSensitivity) {
-  return StdString::StartsWithMatcher(StdString::CasedString(str, caseSensitivity));
-}
-
-StdString::RegexMatcher Matches(std::string const &regex, CaseSensitive::Choice caseSensitivity) {
-  return StdString::RegexMatcher(regex, caseSensitivity);
-}
-
-} // namespace Matchers
-} // namespace Catch
-// end catch_matchers_string.cpp
-// start catch_message.cpp
-
-// start catch_uncaught_exceptions.h
-
-namespace Catch {
-bool uncaught_exceptions();
-} // end namespace Catch
-
-// end catch_uncaught_exceptions.h
-namespace Catch {
-
-MessageInfo::MessageInfo(std::string const &_macroName, SourceLineInfo const &_lineInfo, ResultWas::OfType _type)
-    : macroName(_macroName), lineInfo(_lineInfo), type(_type), sequence(++globalCount) {
-}
-
-bool MessageInfo::operator==(MessageInfo const &other) const {
-  return sequence == other.sequence;
-}
-
-bool MessageInfo::operator<(MessageInfo const &other) const {
-  return sequence < other.sequence;
-}
-
-// This may need protecting if threading support is added
-unsigned int MessageInfo::globalCount = 0;
-
-////////////////////////////////////////////////////////////////////////////
-
-Catch::MessageBuilder::MessageBuilder(std::string const &macroName, SourceLineInfo const &lineInfo,
-                                      ResultWas::OfType type)
-    : m_info(macroName, lineInfo, type) {
-}
-
-////////////////////////////////////////////////////////////////////////////
-
-ScopedMessage::ScopedMessage(MessageBuilder const &builder) : m_info(builder.m_info) {
-  m_info.message = builder.m_stream.str();
-  getResultCapture().pushScopedMessage(m_info);
-}
-
-ScopedMessage::~ScopedMessage() {
-  if (!uncaught_exceptions()) {
-    getResultCapture().popScopedMessage(m_info);
-  }
-}
-} // end namespace Catch
-// end catch_message.cpp
-// start catch_output_redirect.cpp
-
-// start catch_output_redirect.h
-#ifndef TWOBLUECUBES_CATCH_OUTPUT_REDIRECT_H
-#define TWOBLUECUBES_CATCH_OUTPUT_REDIRECT_H
-
-#include <cstdio>
-#include <iosfwd>
-#include <string>
-
-namespace Catch {
-
-class RedirectedStream {
-  std::ostream &m_originalStream;
-  std::ostream &m_redirectionStream;
-  std::streambuf *m_prevBuf;
-
-public:
-  RedirectedStream(std::ostream &originalStream, std::ostream &redirectionStream);
-  ~RedirectedStream();
-};
-
-class RedirectedStdOut {
-  ReusableStringStream m_rss;
-  RedirectedStream m_cout;
-
-public:
-  RedirectedStdOut();
-  auto str() const -> std::string;
-};
-
-// StdErr has two constituent streams in C++, std::cerr and std::clog
-// This means that we need to redirect 2 streams into 1 to keep proper
-// order of writes
-class RedirectedStdErr {
-  ReusableStringStream m_rss;
-  RedirectedStream m_cerr;
-  RedirectedStream m_clog;
-
-public:
-  RedirectedStdErr();
-  auto str() const -> std::string;
-};
-
-// Windows's implementation of std::tmpfile is terrible (it tries
-// to create a file inside system folder, thus requiring elevated
-// privileges for the binary), so we have to use tmpnam(_s) and
-// create the file ourselves there.
-class TempFile {
-public:
-  TempFile(TempFile const &) = delete;
-  TempFile &operator=(TempFile const &) = delete;
-  TempFile(TempFile &&)                 = delete;
-  TempFile &operator=(TempFile &&) = delete;
-
-  TempFile();
-  ~TempFile();
-
-  std::FILE *getFile();
-  std::string getContents();
-
-private:
-  std::FILE *m_file = nullptr;
-#if defined(_MSC_VER)
-  char m_buffer[L_tmpnam] = {0};
-#endif
-};
-
-class OutputRedirect {
-public:
-  OutputRedirect(OutputRedirect const &) = delete;
-  OutputRedirect &operator=(OutputRedirect const &) = delete;
-  OutputRedirect(OutputRedirect &&)                 = delete;
-  OutputRedirect &operator=(OutputRedirect &&) = delete;
-
-  OutputRedirect(std::string &stdout_dest, std::string &stderr_dest);
-  ~OutputRedirect();
-
-private:
-  int m_originalStdout = -1;
-  int m_originalStderr = -1;
-  TempFile m_stdoutFile;
-  TempFile m_stderrFile;
-  std::string &m_stdoutDest;
-  std::string &m_stderrDest;
-};
-
-} // end namespace Catch
-
-#endif // TWOBLUECUBES_CATCH_OUTPUT_REDIRECT_H
-// end catch_output_redirect.h
-#include <cstdio>
-#include <cstring>
-#include <fstream>
-#include <sstream>
-#include <stdexcept>
-
-#if defined(_MSC_VER)
-#include <io.h> //_dup and _dup2
-#define dup _dup
-#define dup2 _dup2
-#define fileno _fileno
-#else
-#include <unistd.h> // dup and dup2
-#endif
-
-namespace Catch {
-
-RedirectedStream::RedirectedStream(std::ostream &originalStream, std::ostream &redirectionStream)
-    : m_originalStream(originalStream), m_redirectionStream(redirectionStream), m_prevBuf(m_originalStream.rdbuf()) {
-  m_originalStream.rdbuf(m_redirectionStream.rdbuf());
-}
-
-RedirectedStream::~RedirectedStream() {
-  m_originalStream.rdbuf(m_prevBuf);
-}
-
-RedirectedStdOut::RedirectedStdOut() : m_cout(Catch::cout(), m_rss.get()) {
-}
-auto RedirectedStdOut::str() const -> std::string {
-  return m_rss.str();
-}
-
-RedirectedStdErr::RedirectedStdErr() : m_cerr(Catch::cerr(), m_rss.get()), m_clog(Catch::clog(), m_rss.get()) {
-}
-auto RedirectedStdErr::str() const -> std::string {
-  return m_rss.str();
-}
-
-#if defined(_MSC_VER)
-TempFile::TempFile() {
-  if (tmpnam_s(m_buffer)) {
-    throw std::runtime_error("Could not get a temp filename");
-  }
-  if (fopen_s(&m_file, m_buffer, "w")) {
-    char buffer[100];
-    if (strerror_s(buffer, errno)) {
-      throw std::runtime_error("Could not translate errno to string");
-    }
-    throw std::runtime_error("Could not open the temp file: " + std::string(m_buffer) + buffer);
-  }
-}
-#else
-TempFile::TempFile() {
-  m_file = std::tmpfile();
-  if (!m_file) {
-    throw std::runtime_error("Could not create a temp file.");
-  }
-}
-
-#endif
-
-TempFile::~TempFile() {
-  // TBD: What to do about errors here?
-  std::fclose(m_file);
-// We manually create the file on Windows only, on Linux
-// it will be autodeleted
-#if defined(_MSC_VER)
-  std::remove(m_buffer);
-#endif
-}
-
-FILE *TempFile::getFile() {
-  return m_file;
-}
-
-std::string TempFile::getContents() {
-  std::stringstream sstr;
-  char buffer[100] = {};
-  std::rewind(m_file);
-  while (std::fgets(buffer, sizeof(buffer), m_file)) {
-    sstr << buffer;
-  }
-  return sstr.str();
-}
-
-OutputRedirect::OutputRedirect(std::string &stdout_dest, std::string &stderr_dest)
-    : m_originalStdout(dup(1)), m_originalStderr(dup(2)), m_stdoutDest(stdout_dest), m_stderrDest(stderr_dest) {
-  dup2(fileno(m_stdoutFile.getFile()), 1);
-  dup2(fileno(m_stderrFile.getFile()), 2);
-}
-
-OutputRedirect::~OutputRedirect() {
-  Catch::cout() << std::flush;
-  fflush(stdout);
-  // Since we support overriding these streams, we flush cerr
-  // even though std::cerr is unbuffered
-  Catch::cerr() << std::flush;
-  Catch::clog() << std::flush;
-  fflush(stderr);
-
-  dup2(m_originalStdout, 1);
-  dup2(m_originalStderr, 2);
-
-  m_stdoutDest += m_stdoutFile.getContents();
-  m_stderrDest += m_stderrFile.getContents();
-}
-
-} // namespace Catch
-
-#if defined(_MSC_VER)
-#undef dup
-#undef dup2
-#undef fileno
-#endif
-// end catch_output_redirect.cpp
-// start catch_random_number_generator.cpp
-
-// start catch_random_number_generator.h
-
-#include <algorithm>
-
-namespace Catch {
-
-struct IConfig;
-
-void seedRng(IConfig const &config);
-
-unsigned int rngSeed();
-
-struct RandomNumberGenerator {
-  using result_type = unsigned int;
-
-  static constexpr result_type(min)() {
-    return 0;
-  }
-  static constexpr result_type(max)() {
-    return 1000000;
-  }
-
-  result_type operator()(result_type n) const;
-  result_type operator()() const;
-
-  template <typename V> static void shuffle(V &vector) {
-    RandomNumberGenerator rng;
-    std::shuffle(vector.begin(), vector.end(), rng);
-  }
-};
-
-} // namespace Catch
-
-// end catch_random_number_generator.h
-#include <cstdlib>
-
-namespace Catch {
-
-void seedRng(IConfig const &config) {
-  if (config.rngSeed() != 0)
-    std::srand(config.rngSeed());
-}
-unsigned int rngSeed() {
-  return getCurrentContext().getConfig()->rngSeed();
-}
-
-RandomNumberGenerator::result_type RandomNumberGenerator::operator()(result_type n) const {
-  return std::rand() % n;
-}
-RandomNumberGenerator::result_type RandomNumberGenerator::operator()() const {
-  return std::rand() % (max)();
-}
-
-} // namespace Catch
-// end catch_random_number_generator.cpp
-// start catch_registry_hub.cpp
-
-// start catch_test_case_registry_impl.h
-
-#include <algorithm>
-#include <ios>
-#include <set>
-#include <vector>
-
-namespace Catch {
-
-class TestCase;
-struct IConfig;
-
-std::vector<TestCase> sortTests(IConfig const &config, std::vector<TestCase> const &unsortedTestCases);
-bool matchTest(TestCase const &testCase, TestSpec const &testSpec, IConfig const &config);
-
-void enforceNoDuplicateTestCases(std::vector<TestCase> const &functions);
-
-std::vector<TestCase> filterTests(std::vector<TestCase> const &testCases, TestSpec const &testSpec,
-                                  IConfig const &config);
-std::vector<TestCase> const &getAllTestCasesSorted(IConfig const &config);
-
-class TestRegistry : public ITestCaseRegistry {
-public:
-  virtual ~TestRegistry() = default;
-
-  virtual void registerTest(TestCase const &testCase);
-
-  std::vector<TestCase> const &getAllTests() const override;
-  std::vector<TestCase> const &getAllTestsSorted(IConfig const &config) const override;
-
-private:
-  std::vector<TestCase> m_functions;
-  mutable RunTests::InWhatOrder m_currentSortOrder = RunTests::InDeclarationOrder;
-  mutable std::vector<TestCase> m_sortedFunctions;
-  std::size_t m_unnamedCount = 0;
-  std::ios_base::Init m_ostreamInit; // Forces cout/ cerr to be initialised
-};
-
-///////////////////////////////////////////////////////////////////////////
-
-class TestInvokerAsFunction : public ITestInvoker {
-  void (*m_testAsFunction)();
-
-public:
-  TestInvokerAsFunction(void (*testAsFunction)()) noexcept;
-
-  void invoke() const override;
-};
-
-std::string extractClassName(StringRef const &classOrQualifiedMethodName);
-
-///////////////////////////////////////////////////////////////////////////
-
-} // end namespace Catch
-
-// end catch_test_case_registry_impl.h
-// start catch_reporter_registry.h
-
-#include <map>
-
-namespace Catch {
-
-class ReporterRegistry : public IReporterRegistry {
-
-public:
-  ~ReporterRegistry() override;
-
-  IStreamingReporterPtr create(std::string const &name, IConfigPtr const &config) const override;
-
-  void registerReporter(std::string const &name, IReporterFactoryPtr const &factory);
-  void registerListener(IReporterFactoryPtr const &factory);
-
-  FactoryMap const &getFactories() const override;
-  Listeners const &getListeners() const override;
-
-private:
-  FactoryMap m_factories;
-  Listeners m_listeners;
-};
-} // namespace Catch
-
-// end catch_reporter_registry.h
-// start catch_tag_alias_registry.h
-
-// start catch_tag_alias.h
-
-#include <string>
-
-namespace Catch {
-
-struct TagAlias {
-  TagAlias(std::string const &_tag, SourceLineInfo _lineInfo);
-
-  std::string tag;
-  SourceLineInfo lineInfo;
-};
-
-} // end namespace Catch
-
-// end catch_tag_alias.h
-#include <map>
-
-namespace Catch {
-
-class TagAliasRegistry : public ITagAliasRegistry {
-public:
-  ~TagAliasRegistry() override;
-  TagAlias const *find(std::string const &alias) const override;
-  std::string expandAliases(std::string const &unexpandedTestSpec) const override;
-  void add(std::string const &alias, std::string const &tag, SourceLineInfo const &lineInfo);
-
-private:
-  std::map<std::string, TagAlias> m_registry;
-};
-
-} // end namespace Catch
-
-// end catch_tag_alias_registry.h
-// start catch_startup_exception_registry.h
-
-#include <exception>
-#include <vector>
-
-namespace Catch {
-
-class StartupExceptionRegistry {
-public:
-  void add(std::exception_ptr const &exception) noexcept;
-  std::vector<std::exception_ptr> const &getExceptions() const noexcept;
-
-private:
-  std::vector<std::exception_ptr> m_exceptions;
-};
-
-} // end namespace Catch
-
-// end catch_startup_exception_registry.h
-namespace Catch {
-
-namespace {
-
-class RegistryHub : public IRegistryHub, public IMutableRegistryHub, private NonCopyable {
-
-public: // IRegistryHub
-  RegistryHub() = default;
-  IReporterRegistry const &getReporterRegistry() const override {
-    return m_reporterRegistry;
-  }
-  ITestCaseRegistry const &getTestCaseRegistry() const override {
-    return m_testCaseRegistry;
-  }
-  IExceptionTranslatorRegistry &getExceptionTranslatorRegistry() override {
-    return m_exceptionTranslatorRegistry;
-  }
-  ITagAliasRegistry const &getTagAliasRegistry() const override {
-    return m_tagAliasRegistry;
-  }
-  StartupExceptionRegistry const &getStartupExceptionRegistry() const override {
-    return m_exceptionRegistry;
-  }
-
-public: // IMutableRegistryHub
-  void registerReporter(std::string const &name, IReporterFactoryPtr const &factory) override {
-    m_reporterRegistry.registerReporter(name, factory);
-  }
-  void registerListener(IReporterFactoryPtr const &factory) override {
-    m_reporterRegistry.registerListener(factory);
-  }
-  void registerTest(TestCase const &testInfo) override {
-    m_testCaseRegistry.registerTest(testInfo);
-  }
-  void registerTranslator(const IExceptionTranslator *translator) override {
-    m_exceptionTranslatorRegistry.registerTranslator(translator);
-  }
-  void registerTagAlias(std::string const &alias, std::string const &tag, SourceLineInfo const &lineInfo) override {
-    m_tagAliasRegistry.add(alias, tag, lineInfo);
-  }
-  void registerStartupException() noexcept override {
-    m_exceptionRegistry.add(std::current_exception());
-  }
-
-private:
-  TestRegistry m_testCaseRegistry;
-  ReporterRegistry m_reporterRegistry;
-  ExceptionTranslatorRegistry m_exceptionTranslatorRegistry;
-  TagAliasRegistry m_tagAliasRegistry;
-  StartupExceptionRegistry m_exceptionRegistry;
-};
-
-// Single, global, instance
-RegistryHub *&getTheRegistryHub() {
-  static RegistryHub *theRegistryHub = nullptr;
-  if (!theRegistryHub)
-    theRegistryHub = new RegistryHub();
-  return theRegistryHub;
-}
-} // namespace
-
-IRegistryHub &getRegistryHub() {
-  return *getTheRegistryHub();
-}
-IMutableRegistryHub &getMutableRegistryHub() {
-  return *getTheRegistryHub();
-}
-void cleanUp() {
-  delete getTheRegistryHub();
-  getTheRegistryHub() = nullptr;
-  cleanUpContext();
-  ReusableStringStream::cleanup();
-}
-std::string translateActiveException() {
-  return getRegistryHub().getExceptionTranslatorRegistry().translateActiveException();
-}
-
-} // end namespace Catch
-// end catch_registry_hub.cpp
-// start catch_reporter_registry.cpp
-
-namespace Catch {
-
-ReporterRegistry::~ReporterRegistry() = default;
-
-IStreamingReporterPtr ReporterRegistry::create(std::string const &name, IConfigPtr const &config) const {
-  auto it = m_factories.find(name);
-  if (it == m_factories.end())
-    return nullptr;
-  return it->second->create(ReporterConfig(config));
-}
-
-void ReporterRegistry::registerReporter(std::string const &name, IReporterFactoryPtr const &factory) {
-  m_factories.emplace(name, factory);
-}
-void ReporterRegistry::registerListener(IReporterFactoryPtr const &factory) {
-  m_listeners.push_back(factory);
-}
-
-IReporterRegistry::FactoryMap const &ReporterRegistry::getFactories() const {
-  return m_factories;
-}
-IReporterRegistry::Listeners const &ReporterRegistry::getListeners() const {
-  return m_listeners;
-}
-
-} // namespace Catch
-// end catch_reporter_registry.cpp
-// start catch_result_type.cpp
-
-namespace Catch {
-
-bool isOk(ResultWas::OfType resultType) {
-  return (resultType & ResultWas::FailureBit) == 0;
-}
-bool isJustInfo(int flags) {
-  return flags == ResultWas::Info;
-}
-
-ResultDisposition::Flags operator|(ResultDisposition::Flags lhs, ResultDisposition::Flags rhs) {
-  return static_cast<ResultDisposition::Flags>(static_cast<int>(lhs) | static_cast<int>(rhs));
-}
-
-bool shouldContinueOnFailure(int flags) {
-  return (flags & ResultDisposition::ContinueOnFailure) != 0;
-}
-bool shouldSuppressFailure(int flags) {
-  return (flags & ResultDisposition::SuppressFail) != 0;
-}
-
-} // end namespace Catch
-// end catch_result_type.cpp
-// start catch_run_context.cpp
-
-#include <algorithm>
-#include <cassert>
-#include <sstream>
-
-namespace Catch {
-
-RunContext::RunContext(IConfigPtr const &_config, IStreamingReporterPtr &&reporter)
-    : m_runInfo(_config->name()), m_context(getCurrentMutableContext()), m_config(_config),
-      m_reporter(std::move(reporter)), m_lastAssertionInfo{StringRef(), SourceLineInfo("", 0), StringRef(),
-                                                           ResultDisposition::Normal},
-      m_includeSuccessfulResults(m_config->includeSuccessfulResults()) {
-  m_context.setRunner(this);
-  m_context.setConfig(m_config);
-  m_context.setResultCapture(this);
-  m_reporter->testRunStarting(m_runInfo);
-}
-
-RunContext::~RunContext() {
-  m_reporter->testRunEnded(TestRunStats(m_runInfo, m_totals, aborting()));
-}
-
-void RunContext::testGroupStarting(std::string const &testSpec, std::size_t groupIndex, std::size_t groupsCount) {
-  m_reporter->testGroupStarting(GroupInfo(testSpec, groupIndex, groupsCount));
-}
-
-void RunContext::testGroupEnded(std::string const &testSpec, Totals const &totals, std::size_t groupIndex,
-                                std::size_t groupsCount) {
-  m_reporter->testGroupEnded(TestGroupStats(GroupInfo(testSpec, groupIndex, groupsCount), totals, aborting()));
-}
-
-Totals RunContext::runTest(TestCase const &testCase) {
-  Totals prevTotals = m_totals;
-
-  std::string redirectedCout;
-  std::string redirectedCerr;
-
-  auto const &testInfo = testCase.getTestCaseInfo();
-
-  m_reporter->testCaseStarting(testInfo);
-
-  m_activeTestCase = &testCase;
-
-  ITracker &rootTracker = m_trackerContext.startRun();
-  assert(rootTracker.isSectionTracker());
-  static_cast<SectionTracker &>(rootTracker).addInitialFilters(m_config->getSectionsToRun());
-  do {
-    m_trackerContext.startCycle();
-    m_testCaseTracker =
-        &SectionTracker::acquire(m_trackerContext, TestCaseTracking::NameAndLocation(testInfo.name, testInfo.lineInfo));
-    runCurrentTest(redirectedCout, redirectedCerr);
-  } while (!m_testCaseTracker->isSuccessfullyCompleted() && !aborting());
-
-  Totals deltaTotals = m_totals.delta(prevTotals);
-  if (testInfo.expectedToFail() && deltaTotals.testCases.passed > 0) {
-    deltaTotals.assertions.failed++;
-    deltaTotals.testCases.passed--;
-    deltaTotals.testCases.failed++;
-  }
-  m_totals.testCases += deltaTotals.testCases;
-  m_reporter->testCaseEnded(TestCaseStats(testInfo, deltaTotals, redirectedCout, redirectedCerr, aborting()));
-
-  m_activeTestCase  = nullptr;
-  m_testCaseTracker = nullptr;
-
-  return deltaTotals;
-}
-
-IConfigPtr RunContext::config() const {
-  return m_config;
-}
-
-IStreamingReporter &RunContext::reporter() const {
-  return *m_reporter;
-}
-
-void RunContext::assertionEnded(AssertionResult const &result) {
-  if (result.getResultType() == ResultWas::Ok) {
-    m_totals.assertions.passed++;
-    m_lastAssertionPassed = true;
-  } else if (!result.isOk()) {
-    m_lastAssertionPassed = false;
-    if (m_activeTestCase->getTestCaseInfo().okToFail())
-      m_totals.assertions.failedButOk++;
-    else
-      m_totals.assertions.failed++;
-  } else {
-    m_lastAssertionPassed = true;
-  }
-
-  // We have no use for the return value (whether messages should be cleared), because messages were made scoped
-  // and should be let to clear themselves out.
-  static_cast<void>(m_reporter->assertionEnded(AssertionStats(result, m_messages, m_totals)));
-
-  // Reset working state
-  resetAssertionInfo();
-  m_lastResult = result;
-}
-void RunContext::resetAssertionInfo() {
-  m_lastAssertionInfo.macroName          = StringRef();
-  m_lastAssertionInfo.capturedExpression = "{Unknown expression after the reported line}"_sr;
-}
-
-bool RunContext::sectionStarted(SectionInfo const &sectionInfo, Counts &assertions) {
-  ITracker &sectionTracker = SectionTracker::acquire(
-      m_trackerContext, TestCaseTracking::NameAndLocation(sectionInfo.name, sectionInfo.lineInfo));
-  if (!sectionTracker.isOpen())
-    return false;
-  m_activeSections.push_back(&sectionTracker);
-
-  m_lastAssertionInfo.lineInfo = sectionInfo.lineInfo;
-
-  m_reporter->sectionStarting(sectionInfo);
-
-  assertions = m_totals.assertions;
-
-  return true;
-}
-
-bool RunContext::testForMissingAssertions(Counts &assertions) {
-  if (assertions.total() != 0)
-    return false;
-  if (!m_config->warnAboutMissingAssertions())
-    return false;
-  if (m_trackerContext.currentTracker().hasChildren())
-    return false;
-  m_totals.assertions.failed++;
-  assertions.failed++;
-  return true;
-}
-
-void RunContext::sectionEnded(SectionEndInfo const &endInfo) {
-  Counts assertions      = m_totals.assertions - endInfo.prevAssertions;
-  bool missingAssertions = testForMissingAssertions(assertions);
-
-  if (!m_activeSections.empty()) {
-    m_activeSections.back()->close();
-    m_activeSections.pop_back();
-  }
-
-  m_reporter->sectionEnded(SectionStats(endInfo.sectionInfo, assertions, endInfo.durationInSeconds, missingAssertions));
-  m_messages.clear();
-}
-
-void RunContext::sectionEndedEarly(SectionEndInfo const &endInfo) {
-  if (m_unfinishedSections.empty())
-    m_activeSections.back()->fail();
-  else
-    m_activeSections.back()->close();
-  m_activeSections.pop_back();
-
-  m_unfinishedSections.push_back(endInfo);
-}
-void RunContext::benchmarkStarting(BenchmarkInfo const &info) {
-  m_reporter->benchmarkStarting(info);
-}
-void RunContext::benchmarkEnded(BenchmarkStats const &stats) {
-  m_reporter->benchmarkEnded(stats);
-}
-
-void RunContext::pushScopedMessage(MessageInfo const &message) {
-  m_messages.push_back(message);
-}
-
-void RunContext::popScopedMessage(MessageInfo const &message) {
-  m_messages.erase(std::remove(m_messages.begin(), m_messages.end(), message), m_messages.end());
-}
-
-std::string RunContext::getCurrentTestName() const {
-  return m_activeTestCase ? m_activeTestCase->getTestCaseInfo().name : std::string();
-}
-
-const AssertionResult *RunContext::getLastResult() const {
-  return &(*m_lastResult);
-}
-
-void RunContext::exceptionEarlyReported() {
-  m_shouldReportUnexpected = false;
-}
-
-void RunContext::handleFatalErrorCondition(StringRef message) {
-  // First notify reporter that bad things happened
-  m_reporter->fatalErrorEncountered(message);
-
-  // Don't rebuild the result -- the stringification itself can cause more fatal errors
-  // Instead, fake a result data.
-  AssertionResultData tempResult(ResultWas::FatalErrorCondition, {false});
-  tempResult.message = message;
-  AssertionResult result(m_lastAssertionInfo, tempResult);
-
-  assertionEnded(result);
-
-  handleUnfinishedSections();
-
-  // Recreate section for test case (as we will lose the one that was in scope)
-  auto const &testCaseInfo = m_activeTestCase->getTestCaseInfo();
-  SectionInfo testCaseSection(testCaseInfo.lineInfo, testCaseInfo.name, testCaseInfo.description);
-
-  Counts assertions;
-  assertions.failed = 1;
-  SectionStats testCaseSectionStats(testCaseSection, assertions, 0, false);
-  m_reporter->sectionEnded(testCaseSectionStats);
-
-  auto const &testInfo = m_activeTestCase->getTestCaseInfo();
-
-  Totals deltaTotals;
-  deltaTotals.testCases.failed  = 1;
-  deltaTotals.assertions.failed = 1;
-  m_reporter->testCaseEnded(TestCaseStats(testInfo, deltaTotals, std::string(), std::string(), false));
-  m_totals.testCases.failed++;
-  testGroupEnded(std::string(), m_totals, 1, 1);
-  m_reporter->testRunEnded(TestRunStats(m_runInfo, m_totals, false));
-}
-
-bool RunContext::lastAssertionPassed() {
-  return m_lastAssertionPassed;
-}
-
-void RunContext::assertionPassed() {
-  m_lastAssertionPassed = true;
-  ++m_totals.assertions.passed;
-  resetAssertionInfo();
-}
-
-bool RunContext::aborting() const {
-  return m_totals.assertions.failed == static_cast<std::size_t>(m_config->abortAfter());
-}
-
-void RunContext::runCurrentTest(std::string &redirectedCout, std::string &redirectedCerr) {
-  auto const &testCaseInfo = m_activeTestCase->getTestCaseInfo();
-  SectionInfo testCaseSection(testCaseInfo.lineInfo, testCaseInfo.name, testCaseInfo.description);
-  m_reporter->sectionStarting(testCaseSection);
-  Counts prevAssertions    = m_totals.assertions;
-  double duration          = 0;
-  m_shouldReportUnexpected = true;
-  m_lastAssertionInfo      = {"TEST_CASE"_sr, testCaseInfo.lineInfo, StringRef(), ResultDisposition::Normal};
-
-  seedRng(*m_config);
-
-  Timer timer;
-  try {
-    if (m_reporter->getPreferences().shouldRedirectStdOut) {
-#if !defined(CATCH_CONFIG_EXPERIMENTAL_REDIRECT)
-      RedirectedStdOut redirectedStdOut;
-      RedirectedStdErr redirectedStdErr;
-
-      timer.start();
-      invokeActiveTestCase();
-      redirectedCout += redirectedStdOut.str();
-      redirectedCerr += redirectedStdErr.str();
-#else
-      OutputRedirect r(redirectedCout, redirectedCerr);
-      timer.start();
-      invokeActiveTestCase();
-#endif
-    } else {
-      timer.start();
-      invokeActiveTestCase();
-    }
-    duration = timer.getElapsedSeconds();
-  } catch (TestFailureException &) {
-    // This just means the test was aborted due to failure
-  } catch (...) {
-    // Under CATCH_CONFIG_FAST_COMPILE, unexpected exceptions under REQUIRE assertions
-    // are reported without translation at the point of origin.
-    if (m_shouldReportUnexpected) {
-      AssertionReaction dummyReaction;
-      handleUnexpectedInflightException(m_lastAssertionInfo, translateActiveException(), dummyReaction);
-    }
-  }
-  Counts assertions      = m_totals.assertions - prevAssertions;
-  bool missingAssertions = testForMissingAssertions(assertions);
-
-  m_testCaseTracker->close();
-  handleUnfinishedSections();
-  m_messages.clear();
-
-  SectionStats testCaseSectionStats(testCaseSection, assertions, duration, missingAssertions);
-  m_reporter->sectionEnded(testCaseSectionStats);
-}
-
-void RunContext::invokeActiveTestCase() {
-  FatalConditionHandler fatalConditionHandler; // Handle signals
-  m_activeTestCase->invoke();
-  fatalConditionHandler.reset();
-}
-
-void RunContext::handleUnfinishedSections() {
-  // If sections ended prematurely due to an exception we stored their
-  // infos here so we can tear them down outside the unwind process.
-  for (auto it = m_unfinishedSections.rbegin(), itEnd = m_unfinishedSections.rend(); it != itEnd; ++it)
-    sectionEnded(*it);
-  m_unfinishedSections.clear();
-}
-
-void RunContext::handleExpr(AssertionInfo const &info, ITransientExpression const &expr, AssertionReaction &reaction) {
-  m_reporter->assertionStarting(info);
-
-  bool negated = isFalseTest(info.resultDisposition);
-  bool result  = expr.getResult() != negated;
-
-  if (result) {
-    if (!m_includeSuccessfulResults) {
-      assertionPassed();
-    } else {
-      reportExpr(info, ResultWas::Ok, &expr, negated);
-    }
-  } else {
-    reportExpr(info, ResultWas::ExpressionFailed, &expr, negated);
-    populateReaction(reaction);
-  }
-}
-void RunContext::reportExpr(AssertionInfo const &info, ResultWas::OfType resultType, ITransientExpression const *expr,
-                            bool negated) {
-
-  m_lastAssertionInfo = info;
-  AssertionResultData data(resultType, LazyExpression(negated));
-
-  AssertionResult assertionResult{info, data};
-  assertionResult.m_resultData.lazyExpression.m_transientExpression = expr;
-
-  assertionEnded(assertionResult);
-}
-
-void RunContext::handleMessage(AssertionInfo const &info, ResultWas::OfType resultType, StringRef const &message,
-                               AssertionReaction &reaction) {
-  m_reporter->assertionStarting(info);
-
-  m_lastAssertionInfo = info;
-
-  AssertionResultData data(resultType, LazyExpression(false));
-  data.message = message;
-  AssertionResult assertionResult{m_lastAssertionInfo, data};
-  assertionEnded(assertionResult);
-  if (!assertionResult.isOk())
-    populateReaction(reaction);
-}
-void RunContext::handleUnexpectedExceptionNotThrown(AssertionInfo const &info, AssertionReaction &reaction) {
-  handleNonExpr(info, Catch::ResultWas::DidntThrowException, reaction);
-}
-
-void RunContext::handleUnexpectedInflightException(AssertionInfo const &info, std::string const &message,
-                                                   AssertionReaction &reaction) {
-  m_lastAssertionInfo = info;
-
-  AssertionResultData data(ResultWas::ThrewException, LazyExpression(false));
-  data.message = message;
-  AssertionResult assertionResult{info, data};
-  assertionEnded(assertionResult);
-  populateReaction(reaction);
-}
-
-void RunContext::populateReaction(AssertionReaction &reaction) {
-  reaction.shouldDebugBreak = m_config->shouldDebugBreak();
-  reaction.shouldThrow      = aborting() || (m_lastAssertionInfo.resultDisposition & ResultDisposition::Normal);
-}
-
-void RunContext::handleIncomplete(AssertionInfo const &info) {
-  m_lastAssertionInfo = info;
-
-  AssertionResultData data(ResultWas::ThrewException, LazyExpression(false));
-  data.message = "Exception translation was disabled by CATCH_CONFIG_FAST_COMPILE";
-  AssertionResult assertionResult{info, data};
-  assertionEnded(assertionResult);
-}
-void RunContext::handleNonExpr(AssertionInfo const &info, ResultWas::OfType resultType, AssertionReaction &reaction) {
-  m_lastAssertionInfo = info;
-
-  AssertionResultData data(resultType, LazyExpression(false));
-  AssertionResult assertionResult{info, data};
-  assertionEnded(assertionResult);
-
-  if (!assertionResult.isOk())
-    populateReaction(reaction);
-}
-
-IResultCapture &getResultCapture() {
-  if (auto *capture = getCurrentContext().getResultCapture())
-    return *capture;
-  else
-    CATCH_INTERNAL_ERROR("No result capture instance");
-}
-} // namespace Catch
-// end catch_run_context.cpp
-// start catch_section.cpp
-
-namespace Catch {
-
-Section::Section(SectionInfo const &info)
-    : m_info(info), m_sectionIncluded(getResultCapture().sectionStarted(m_info, m_assertions)) {
-  m_timer.start();
-}
-
-Section::~Section() {
-  if (m_sectionIncluded) {
-    SectionEndInfo endInfo(m_info, m_assertions, m_timer.getElapsedSeconds());
-    if (uncaught_exceptions())
-      getResultCapture().sectionEndedEarly(endInfo);
-    else
-      getResultCapture().sectionEnded(endInfo);
-  }
-}
-
-// This indicates whether the section should be executed or not
-Section::operator bool() const {
-  return m_sectionIncluded;
-}
-
-} // end namespace Catch
-// end catch_section.cpp
-// start catch_section_info.cpp
-
-namespace Catch {
-
-SectionInfo::SectionInfo(SourceLineInfo const &_lineInfo, std::string const &_name, std::string const &_description)
-    : name(_name), description(_description), lineInfo(_lineInfo) {
-}
-
-SectionEndInfo::SectionEndInfo(SectionInfo const &_sectionInfo, Counts const &_prevAssertions,
-                               double _durationInSeconds)
-    : sectionInfo(_sectionInfo), prevAssertions(_prevAssertions), durationInSeconds(_durationInSeconds) {
-}
-
-} // end namespace Catch
-// end catch_section_info.cpp
-// start catch_session.cpp
-
-// start catch_session.h
-
-#include <memory>
-
-namespace Catch {
-
-class Session : NonCopyable {
-public:
-  Session();
-  ~Session() override;
-
-  void showHelp() const;
-  void libIdentify();
-
-  int applyCommandLine(int argc, char const *const *argv);
-
-  void useConfigData(ConfigData const &configData);
-
-  int run(int argc, char *argv[]);
-#if defined(CATCH_CONFIG_WCHAR) && defined(WIN32) && defined(UNICODE)
-  int run(int argc, wchar_t *const argv[]);
-#endif
-  int run();
-
-  clara::Parser const &cli() const;
-  void cli(clara::Parser const &newParser);
-  ConfigData &configData();
-  Config &config();
-
-private:
-  int runInternal();
-
-  clara::Parser m_cli;
-  ConfigData m_configData;
-  std::shared_ptr<Config> m_config;
-  bool m_startupExceptions = false;
-};
-
-} // end namespace Catch
-
-// end catch_session.h
-// start catch_version.h
-
-#include <iosfwd>
-
-namespace Catch {
-
-// Versioning information
-struct Version {
-  Version(Version const &) = delete;
-  Version &operator=(Version const &) = delete;
-  Version(unsigned int _majorVersion, unsigned int _minorVersion, unsigned int _patchNumber,
-          char const *const _branchName, unsigned int _buildNumber);
-
-  unsigned int const majorVersion;
-  unsigned int const minorVersion;
-  unsigned int const patchNumber;
-
-  // buildNumber is only used if branchName is not null
-  char const *const branchName;
-  unsigned int const buildNumber;
-
-  friend std::ostream &operator<<(std::ostream &os, Version const &version);
-};
-
-Version const &libraryVersion();
-} // namespace Catch
-
-// end catch_version.h
-#include <cstdlib>
-#include <iomanip>
-
-namespace Catch {
-
-namespace {
-const int MaxExitCode = 255;
-
-IStreamingReporterPtr createReporter(std::string const &reporterName, IConfigPtr const &config) {
-  auto reporter = Catch::getRegistryHub().getReporterRegistry().create(reporterName, config);
-  CATCH_ENFORCE(reporter, "No reporter registered with name: '" << reporterName << "'");
-
-  return reporter;
-}
-
-IStreamingReporterPtr makeReporter(std::shared_ptr<Config> const &config) {
-  if (Catch::getRegistryHub().getReporterRegistry().getListeners().empty()) {
-    return createReporter(config->getReporterName(), config);
-  }
-
-  auto multi = std::unique_ptr<ListeningReporter>(new ListeningReporter);
-
-  auto const &listeners = Catch::getRegistryHub().getReporterRegistry().getListeners();
-  for (auto const &listener : listeners) {
-    multi->addListener(listener->create(Catch::ReporterConfig(config)));
-  }
-  multi->addReporter(createReporter(config->getReporterName(), config));
-  return std::move(multi);
-}
-
-Catch::Totals runTests(std::shared_ptr<Config> const &config) {
-  // FixMe: Add listeners in order first, then add reporters.
-
-  auto reporter = makeReporter(config);
-
-  RunContext context(config, std::move(reporter));
-
-  Totals totals;
-
-  context.testGroupStarting(config->name(), 1, 1);
-
-  TestSpec testSpec = config->testSpec();
-
-  auto const &allTestCases = getAllTestCasesSorted(*config);
-  for (auto const &testCase : allTestCases) {
-    if (!context.aborting() && matchTest(testCase, testSpec, *config))
-      totals += context.runTest(testCase);
-    else
-      context.reporter().skipTest(testCase);
-  }
-
-  if (config->warnAboutNoTests() && totals.testCases.total() == 0) {
-    ReusableStringStream testConfig;
-
-    bool first = true;
-    for (const auto &input : config->getTestsOrTags()) {
-      if (!first) {
-        testConfig << ' ';
-      }
-      first = false;
-      testConfig << input;
-    }
-
-    context.reporter().noMatchingTestCases(testConfig.str());
-    totals.error = -1;
-  }
-
-  context.testGroupEnded(config->name(), totals, 1, 1);
-  return totals;
-}
-
-void applyFilenamesAsTags(Catch::IConfig const &config) {
-  auto &tests = const_cast<std::vector<TestCase> &>(getAllTestCasesSorted(config));
-  for (auto &testCase : tests) {
-    auto tags = testCase.tags;
-
-    std::string filename = testCase.lineInfo.file;
-    auto lastSlash       = filename.find_last_of("\\/");
-    if (lastSlash != std::string::npos) {
-      filename.erase(0, lastSlash);
-      filename[0] = '#';
-    }
-
-    auto lastDot = filename.find_last_of('.');
-    if (lastDot != std::string::npos) {
-      filename.erase(lastDot);
-    }
-
-    tags.push_back(std::move(filename));
-    setTags(testCase, tags);
-  }
-}
-
-} // namespace
-
-Session::Session() {
-  static bool alreadyInstantiated = false;
-  if (alreadyInstantiated) {
-    try {
-      CATCH_INTERNAL_ERROR("Only one instance of Catch::Session can ever be used");
-    } catch (...) {
-      getMutableRegistryHub().registerStartupException();
-    }
-  }
-
-  const auto &exceptions = getRegistryHub().getStartupExceptionRegistry().getExceptions();
-  if (!exceptions.empty()) {
-    m_startupExceptions = true;
-    Colour colourGuard(Colour::Red);
-    Catch::cerr() << "Errors occurred during startup!" << '\n';
-    // iterate over all exceptions and notify user
-    for (const auto &ex_ptr : exceptions) {
-      try {
-        std::rethrow_exception(ex_ptr);
-      } catch (std::exception const &ex) {
-        Catch::cerr() << Column(ex.what()).indent(2) << '\n';
-      }
-    }
-  }
-
-  alreadyInstantiated = true;
-  m_cli               = makeCommandLineParser(m_configData);
-}
-Session::~Session() {
-  Catch::cleanUp();
-}
-
-void Session::showHelp() const {
-  Catch::cout() << "\nCatch v" << libraryVersion() << "\n"
-                << m_cli << std::endl
-                << "For more detailed usage please see the project docs\n"
-                << std::endl;
-}
-void Session::libIdentify() {
-  Catch::cout() << std::left << std::setw(16) << "description: "
-                << "A Catch test executable\n"
-                << std::left << std::setw(16) << "category: "
-                << "testframework\n"
-                << std::left << std::setw(16) << "framework: "
-                << "Catch Test\n"
-                << std::left << std::setw(16) << "version: " << libraryVersion() << std::endl;
-}
-
-int Session::applyCommandLine(int argc, char const *const *argv) {
-  if (m_startupExceptions)
-    return 1;
-
-  auto result = m_cli.parse(clara::Args(argc, argv));
-  if (!result) {
-    Catch::cerr() << Colour(Colour::Red) << "\nError(s) in input:\n"
-                  << Column(result.errorMessage()).indent(2) << "\n\n";
-    Catch::cerr() << "Run with -? for usage\n" << std::endl;
-    return MaxExitCode;
-  }
-
-  if (m_configData.showHelp)
-    showHelp();
-  if (m_configData.libIdentify)
-    libIdentify();
-  m_config.reset();
-  return 0;
-}
-
-void Session::useConfigData(ConfigData const &configData) {
-  m_configData = configData;
-  m_config.reset();
-}
-
-int Session::run(int argc, char *argv[]) {
-  if (m_startupExceptions)
-    return 1;
-  int returnCode = applyCommandLine(argc, argv);
-  if (returnCode == 0)
-    returnCode = run();
-  return returnCode;
-}
-
-#if defined(CATCH_CONFIG_WCHAR) && defined(WIN32) && defined(UNICODE)
-int Session::run(int argc, wchar_t *const argv[]) {
-
-  char **utf8Argv = new char *[argc];
-
-  for (int i = 0; i < argc; ++i) {
-    int bufSize = WideCharToMultiByte(CP_UTF8, 0, argv[i], -1, NULL, 0, NULL, NULL);
-
-    utf8Argv[i] = new char[bufSize];
-
-    WideCharToMultiByte(CP_UTF8, 0, argv[i], -1, utf8Argv[i], bufSize, NULL, NULL);
-  }
-
-  int returnCode = run(argc, utf8Argv);
-
-  for (int i = 0; i < argc; ++i)
-    delete[] utf8Argv[i];
-
-  delete[] utf8Argv;
-
-  return returnCode;
-}
-#endif
-int Session::run() {
-  if ((m_configData.waitForKeypress & WaitForKeypress::BeforeStart) != 0) {
-    Catch::cout() << "...waiting for enter/ return before starting" << std::endl;
-    static_cast<void>(std::getchar());
-  }
-  int exitCode = runInternal();
-  if ((m_configData.waitForKeypress & WaitForKeypress::BeforeExit) != 0) {
-    Catch::cout() << "...waiting for enter/ return before exiting, with code: " << exitCode << std::endl;
-    static_cast<void>(std::getchar());
-  }
-  return exitCode;
-}
-
-clara::Parser const &Session::cli() const {
-  return m_cli;
-}
-void Session::cli(clara::Parser const &newParser) {
-  m_cli = newParser;
-}
-ConfigData &Session::configData() {
-  return m_configData;
-}
-Config &Session::config() {
-  if (!m_config)
-    m_config = std::make_shared<Config>(m_configData);
-  return *m_config;
-}
-
-int Session::runInternal() {
-  if (m_startupExceptions)
-    return 1;
-
-  if (m_configData.showHelp || m_configData.libIdentify)
-    return 0;
-
-  try {
-    config(); // Force config to be constructed
-
-    seedRng(*m_config);
-
-    if (m_configData.filenamesAsTags)
-      applyFilenamesAsTags(*m_config);
-
-    // Handle list request
-    if (Option<std::size_t> listed = list(config()))
-      return static_cast<int>(*listed);
-
-    auto totals = runTests(m_config);
-    // Note that on unices only the lower 8 bits are usually used, clamping
-    // the return value to 255 prevents false negative when some multiple
-    // of 256 tests has failed
-    return (std::min)(MaxExitCode, (std::max)(totals.error, static_cast<int>(totals.assertions.failed)));
-  } catch (std::exception &ex) {
-    Catch::cerr() << ex.what() << std::endl;
-    return MaxExitCode;
-  }
-}
-
-} // end namespace Catch
-// end catch_session.cpp
-// start catch_startup_exception_registry.cpp
-
-namespace Catch {
-void StartupExceptionRegistry::add(std::exception_ptr const &exception) noexcept {
-  try {
-    m_exceptions.push_back(exception);
-  } catch (...) {
-    // If we run out of memory during start-up there's really not a lot more we can do about it
-    std::terminate();
-  }
-}
-
-std::vector<std::exception_ptr> const &StartupExceptionRegistry::getExceptions() const noexcept {
-  return m_exceptions;
-}
-
-} // end namespace Catch
-// end catch_startup_exception_registry.cpp
-// start catch_stream.cpp
-
-#include <cstdio>
-#include <fstream>
-#include <iostream>
-#include <memory>
-#include <sstream>
-#include <vector>
-
-#if defined(__clang__)
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wexit-time-destructors"
-#endif
-
-namespace Catch {
-
-Catch::IStream::~IStream() = default;
-
-namespace detail {
-namespace {
-template <typename WriterF, std::size_t bufferSize = 256> class StreamBufImpl : public std::streambuf {
-  char data[bufferSize];
-  WriterF m_writer;
-
-public:
-  StreamBufImpl() {
-    setp(data, data + sizeof(data));
-  }
-
-  ~StreamBufImpl() noexcept {
-    StreamBufImpl::sync();
-  }
-
-private:
-  int overflow(int c) override {
-    sync();
-
-    if (c != EOF) {
-      if (pbase() == epptr())
-        m_writer(std::string(1, static_cast<char>(c)));
-      else
-        sputc(static_cast<char>(c));
-    }
-    return 0;
-  }
-
-  int sync() override {
-    if (pbase() != pptr()) {
-      m_writer(std::string(pbase(), static_cast<std::string::size_type>(pptr() - pbase())));
-      setp(pbase(), epptr());
-    }
-    return 0;
-  }
-};
-
-///////////////////////////////////////////////////////////////////////////
-
-struct OutputDebugWriter {
-
-  void operator()(std::string const &str) {
-    writeToDebugConsole(str);
-  }
-};
-
-///////////////////////////////////////////////////////////////////////////
-
-class FileStream : public IStream {
-  mutable std::ofstream m_ofs;
-
-public:
-  FileStream(StringRef filename) {
-    m_ofs.open(filename.c_str());
-    CATCH_ENFORCE(!m_ofs.fail(), "Unable to open file: '" << filename << "'");
-  }
-  ~FileStream() override = default;
-
-public: // IStream
-  std::ostream &stream() const override {
-    return m_ofs;
-  }
-};
-
-///////////////////////////////////////////////////////////////////////////
-
-class CoutStream : public IStream {
-  mutable std::ostream m_os;
-
-public:
-  // Store the streambuf from cout up-front because
-  // cout may get redirected when running tests
-  CoutStream() : m_os(Catch::cout().rdbuf()) {
-  }
-  ~CoutStream() override = default;
-
-public: // IStream
-  std::ostream &stream() const override {
-    return m_os;
-  }
-};
-
-///////////////////////////////////////////////////////////////////////////
-
-class DebugOutStream : public IStream {
-  std::unique_ptr<StreamBufImpl<OutputDebugWriter>> m_streamBuf;
-  mutable std::ostream m_os;
-
-public:
-  DebugOutStream() : m_streamBuf(new StreamBufImpl<OutputDebugWriter>()), m_os(m_streamBuf.get()) {
-  }
-
-  ~DebugOutStream() override = default;
-
-public: // IStream
-  std::ostream &stream() const override {
-    return m_os;
-  }
-};
-
-} // namespace
-} // namespace detail
-
-///////////////////////////////////////////////////////////////////////////
-
-auto makeStream(StringRef const &filename) -> IStream const * {
-  if (filename.empty())
-    return new detail::CoutStream();
-  else if (filename[0] == '%') {
-    if (filename == "%debug")
-      return new detail::DebugOutStream();
-    else
-      CATCH_ERROR("Unrecognised stream: '" << filename << "'");
-  } else
-    return new detail::FileStream(filename);
-}
-
-// This class encapsulates the idea of a pool of ostringstreams that can be reused.
-struct StringStreams {
-  std::vector<std::unique_ptr<std::ostringstream>> m_streams;
-  std::vector<std::size_t> m_unused;
-  std::ostringstream m_referenceStream; // Used for copy state/ flags from
-  static StringStreams *s_instance;
-
-  auto add() -> std::size_t {
-    if (m_unused.empty()) {
-      m_streams.push_back(std::unique_ptr<std::ostringstream>(new std::ostringstream));
-      return m_streams.size() - 1;
-    } else {
-      auto index = m_unused.back();
-      m_unused.pop_back();
-      return index;
-    }
-  }
-
-  void release(std::size_t index) {
-    m_streams[index]->copyfmt(m_referenceStream); // Restore initial flags and other state
-    m_unused.push_back(index);
-  }
-
-  // !TBD: put in TLS
-  static auto instance() -> StringStreams & {
-    if (!s_instance)
-      s_instance = new StringStreams();
-    return *s_instance;
-  }
-  static void cleanup() {
-    delete s_instance;
-    s_instance = nullptr;
-  }
-};
-
-StringStreams *StringStreams::s_instance = nullptr;
-
-void ReusableStringStream::cleanup() {
-  StringStreams::cleanup();
-}
-
-ReusableStringStream::ReusableStringStream()
-    : m_index(StringStreams::instance().add()), m_oss(StringStreams::instance().m_streams[m_index].get()) {
-}
-
-ReusableStringStream::~ReusableStringStream() {
-  static_cast<std::ostringstream *>(m_oss)->str("");
-  m_oss->clear();
-  StringStreams::instance().release(m_index);
-}
-
-auto ReusableStringStream::str() const -> std::string {
-  return static_cast<std::ostringstream *>(m_oss)->str();
-}
-
-///////////////////////////////////////////////////////////////////////////
-
-#ifndef CATCH_CONFIG_NOSTDOUT // If you #define this you must implement these functions
-std::ostream &cout() {
-  return std::cout;
-}
-std::ostream &cerr() {
-  return std::cerr;
-}
-std::ostream &clog() {
-  return std::clog;
-}
-#endif
-} // namespace Catch
-
-#if defined(__clang__)
-#pragma clang diagnostic pop
-#endif
-// end catch_stream.cpp
-// start catch_string_manip.cpp
-
-#include <algorithm>
-#include <cctype>
-#include <cstring>
-#include <ostream>
-
-namespace Catch {
-
-bool startsWith(std::string const &s, std::string const &prefix) {
-  return s.size() >= prefix.size() && std::equal(prefix.begin(), prefix.end(), s.begin());
-}
-bool startsWith(std::string const &s, char prefix) {
-  return !s.empty() && s[0] == prefix;
-}
-bool endsWith(std::string const &s, std::string const &suffix) {
-  return s.size() >= suffix.size() && std::equal(suffix.rbegin(), suffix.rend(), s.rbegin());
-}
-bool endsWith(std::string const &s, char suffix) {
-  return !s.empty() && s[s.size() - 1] == suffix;
-}
-bool contains(std::string const &s, std::string const &infix) {
-  return s.find(infix) != std::string::npos;
-}
-char toLowerCh(char c) {
-  return static_cast<char>(std::tolower(c));
-}
-void toLowerInPlace(std::string &s) {
-  std::transform(s.begin(), s.end(), s.begin(), toLowerCh);
-}
-std::string toLower(std::string const &s) {
-  std::string lc = s;
-  toLowerInPlace(lc);
-  return lc;
-}
-std::string trim(std::string const &str) {
-  static char const *whitespaceChars = "\n\r\t ";
-  std::string::size_type start       = str.find_first_not_of(whitespaceChars);
-  std::string::size_type end         = str.find_last_not_of(whitespaceChars);
-
-  return start != std::string::npos ? str.substr(start, 1 + end - start) : std::string();
-}
-
-bool replaceInPlace(std::string &str, std::string const &replaceThis, std::string const &withThis) {
-  bool replaced = false;
-  std::size_t i = str.find(replaceThis);
-  while (i != std::string::npos) {
-    replaced = true;
-    str      = str.substr(0, i) + withThis + str.substr(i + replaceThis.size());
-    if (i < str.size() - withThis.size())
-      i = str.find(replaceThis, i + withThis.size());
-    else
-      i = std::string::npos;
-  }
-  return replaced;
-}
-
-pluralise::pluralise(std::size_t count, std::string const &label) : m_count(count), m_label(label) {
-}
-
-std::ostream &operator<<(std::ostream &os, pluralise const &pluraliser) {
-  os << pluraliser.m_count << ' ' << pluraliser.m_label;
-  if (pluraliser.m_count != 1)
-    os << 's';
-  return os;
-}
-
-} // namespace Catch
-// end catch_string_manip.cpp
-// start catch_stringref.cpp
-
-#if defined(__clang__)
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wexit-time-destructors"
-#endif
-
-#include <cstdint>
-#include <cstring>
-#include <ostream>
-
-namespace {
-const uint32_t byte_2_lead = 0xC0;
-const uint32_t byte_3_lead = 0xE0;
-const uint32_t byte_4_lead = 0xF0;
-} // namespace
-
-namespace Catch {
-StringRef::StringRef(char const *rawChars) noexcept
-    : StringRef(rawChars, static_cast<StringRef::size_type>(std::strlen(rawChars))) {
-}
-
-StringRef::operator std::string() const {
-  return std::string(m_start, m_size);
-}
-
-void StringRef::swap(StringRef &other) noexcept {
-  std::swap(m_start, other.m_start);
-  std::swap(m_size, other.m_size);
-  std::swap(m_data, other.m_data);
-}
-
-auto StringRef::c_str() const -> char const * {
-  if (isSubstring())
-    const_cast<StringRef *>(this)->takeOwnership();
-  return m_start;
-}
-auto StringRef::currentData() const noexcept -> char const * {
-  return m_start;
-}
-
-auto StringRef::isOwned() const noexcept -> bool {
-  return m_data != nullptr;
-}
-auto StringRef::isSubstring() const noexcept -> bool {
-  return m_start[m_size] != '\0';
-}
-
-void StringRef::takeOwnership() {
-  if (!isOwned()) {
-    m_data = new char[m_size + 1];
-    memcpy(m_data, m_start, m_size);
-    m_data[m_size] = '\0';
-    m_start        = m_data;
-  }
-}
-auto StringRef::substr(size_type start, size_type size) const noexcept -> StringRef {
-  if (start < m_size)
-    return StringRef(m_start + start, size);
-  else
-    return StringRef();
-}
-auto StringRef::operator==(StringRef const &other) const noexcept -> bool {
-  return size() == other.size() && (std::strncmp(m_start, other.m_start, size()) == 0);
-}
-auto StringRef::operator!=(StringRef const &other) const noexcept -> bool {
-  return !operator==(other);
-}
-
-auto StringRef::operator[](size_type index) const noexcept -> char {
-  return m_start[index];
-}
-
-auto StringRef::numberOfCharacters() const noexcept -> size_type {
-  size_type noChars = m_size;
-  // Make adjustments for uft encodings
-  for (size_type i = 0; i < m_size; ++i) {
-    char c = m_start[i];
-    if ((c & byte_2_lead) == byte_2_lead) {
-      noChars--;
-      if ((c & byte_3_lead) == byte_3_lead)
-        noChars--;
-      if ((c & byte_4_lead) == byte_4_lead)
-        noChars--;
-    }
-  }
-  return noChars;
-}
-
-auto operator+(StringRef const &lhs, StringRef const &rhs) -> std::string {
-  std::string str;
-  str.reserve(lhs.size() + rhs.size());
-  str += lhs;
-  str += rhs;
-  return str;
-}
-auto operator+(StringRef const &lhs, const char *rhs) -> std::string {
-  return std::string(lhs) + std::string(rhs);
-}
-auto operator+(char const *lhs, StringRef const &rhs) -> std::string {
-  return std::string(lhs) + std::string(rhs);
-}
-
-auto operator<<(std::ostream &os, StringRef const &str) -> std::ostream & {
-  return os.write(str.currentData(), str.size());
-}
-
-auto operator+=(std::string &lhs, StringRef const &rhs) -> std::string & {
-  lhs.append(rhs.currentData(), rhs.size());
-  return lhs;
-}
-
-} // namespace Catch
-
-#if defined(__clang__)
-#pragma clang diagnostic pop
-#endif
-// end catch_stringref.cpp
-// start catch_tag_alias.cpp
-
-namespace Catch {
-TagAlias::TagAlias(std::string const &_tag, SourceLineInfo _lineInfo) : tag(_tag), lineInfo(_lineInfo) {
-}
-} // namespace Catch
-// end catch_tag_alias.cpp
-// start catch_tag_alias_autoregistrar.cpp
-
-namespace Catch {
-
-RegistrarForTagAliases::RegistrarForTagAliases(char const *alias, char const *tag, SourceLineInfo const &lineInfo) {
-  try {
-    getMutableRegistryHub().registerTagAlias(alias, tag, lineInfo);
-  } catch (...) {
-    // Do not throw when constructing global objects, instead register the exception to be processed later
-    getMutableRegistryHub().registerStartupException();
-  }
-}
-
-} // namespace Catch
-// end catch_tag_alias_autoregistrar.cpp
-// start catch_tag_alias_registry.cpp
-
-#include <sstream>
-
-namespace Catch {
-
-TagAliasRegistry::~TagAliasRegistry() {
-}
-
-TagAlias const *TagAliasRegistry::find(std::string const &alias) const {
-  auto it = m_registry.find(alias);
-  if (it != m_registry.end())
-    return &(it->second);
-  else
-    return nullptr;
-}
-
-std::string TagAliasRegistry::expandAliases(std::string const &unexpandedTestSpec) const {
-  std::string expandedTestSpec = unexpandedTestSpec;
-  for (auto const &registryKvp : m_registry) {
-    std::size_t pos = expandedTestSpec.find(registryKvp.first);
-    if (pos != std::string::npos) {
-      expandedTestSpec = expandedTestSpec.substr(0, pos) + registryKvp.second.tag +
-                         expandedTestSpec.substr(pos + registryKvp.first.size());
-    }
-  }
-  return expandedTestSpec;
-}
-
-void TagAliasRegistry::add(std::string const &alias, std::string const &tag, SourceLineInfo const &lineInfo) {
-  CATCH_ENFORCE(startsWith(alias, "[@") && endsWith(alias, ']'), "error: tag alias, '"
-                                                                     << alias << "' is not of the form [@alias name].\n"
-                                                                     << lineInfo);
-
-  CATCH_ENFORCE(m_registry.insert(std::make_pair(alias, TagAlias(tag, lineInfo))).second,
-                "error: tag alias, '" << alias << "' already registered.\n"
-                                      << "\tFirst seen at: " << find(alias)->lineInfo << "\n"
-                                      << "\tRedefined at: " << lineInfo);
-}
-
-ITagAliasRegistry::~ITagAliasRegistry() {
-}
-
-ITagAliasRegistry const &ITagAliasRegistry::get() {
-  return getRegistryHub().getTagAliasRegistry();
-}
-
-} // end namespace Catch
-// end catch_tag_alias_registry.cpp
-// start catch_test_case_info.cpp
-
-#include <algorithm>
-#include <cctype>
-#include <exception>
-#include <sstream>
-
-namespace Catch {
-
-TestCaseInfo::SpecialProperties parseSpecialTag(std::string const &tag) {
-  if (startsWith(tag, '.') || tag == "!hide")
-    return TestCaseInfo::IsHidden;
-  else if (tag == "!throws")
-    return TestCaseInfo::Throws;
-  else if (tag == "!shouldfail")
-    return TestCaseInfo::ShouldFail;
-  else if (tag == "!mayfail")
-    return TestCaseInfo::MayFail;
-  else if (tag == "!nonportable")
-    return TestCaseInfo::NonPortable;
-  else if (tag == "!benchmark")
-    return static_cast<TestCaseInfo::SpecialProperties>(TestCaseInfo::Benchmark | TestCaseInfo::IsHidden);
-  else
-    return TestCaseInfo::None;
-}
-bool isReservedTag(std::string const &tag) {
-  return parseSpecialTag(tag) == TestCaseInfo::None && tag.size() > 0 &&
-         !std::isalnum(static_cast<unsigned char>(tag[0]));
-}
-void enforceNotReservedTag(std::string const &tag, SourceLineInfo const &_lineInfo) {
-  CATCH_ENFORCE(!isReservedTag(tag), "Tag name: ["
-                                         << tag << "] is not allowed.\n"
-                                         << "Tag names starting with non alpha-numeric characters are reserved\n"
-                                         << _lineInfo);
-}
-
-TestCase makeTestCase(ITestInvoker *_testCase, std::string const &_className, NameAndTags const &nameAndTags,
-                      SourceLineInfo const &_lineInfo) {
-  bool isHidden = false;
-
-  // Parse out tags
-  std::vector<std::string> tags;
-  std::string desc, tag;
-  bool inTag              = false;
-  std::string _descOrTags = nameAndTags.tags;
-  for (char c : _descOrTags) {
-    if (!inTag) {
-      if (c == '[')
-        inTag = true;
-      else
-        desc += c;
-    } else {
-      if (c == ']') {
-        TestCaseInfo::SpecialProperties prop = parseSpecialTag(tag);
-        if ((prop & TestCaseInfo::IsHidden) != 0)
-          isHidden = true;
-        else if (prop == TestCaseInfo::None)
-          enforceNotReservedTag(tag, _lineInfo);
-
-        tags.push_back(tag);
-        tag.clear();
-        inTag = false;
-      } else
-        tag += c;
-    }
-  }
-  if (isHidden) {
-    tags.push_back(".");
-  }
-
-  TestCaseInfo info(nameAndTags.name, _className, desc, tags, _lineInfo);
-  return TestCase(_testCase, std::move(info));
-}
-
-void setTags(TestCaseInfo &testCaseInfo, std::vector<std::string> tags) {
-  std::sort(begin(tags), end(tags));
-  tags.erase(std::unique(begin(tags), end(tags)), end(tags));
-  testCaseInfo.lcaseTags.clear();
-
-  for (auto const &tag : tags) {
-    std::string lcaseTag = toLower(tag);
-    testCaseInfo.properties =
-        static_cast<TestCaseInfo::SpecialProperties>(testCaseInfo.properties | parseSpecialTag(lcaseTag));
-    testCaseInfo.lcaseTags.push_back(lcaseTag);
-  }
-  testCaseInfo.tags = std::move(tags);
-}
-
-TestCaseInfo::TestCaseInfo(std::string const &_name, std::string const &_className, std::string const &_description,
-                           std::vector<std::string> const &_tags, SourceLineInfo const &_lineInfo)
-    : name(_name), className(_className), description(_description), lineInfo(_lineInfo), properties(None) {
-  setTags(*this, _tags);
-}
-
-bool TestCaseInfo::isHidden() const {
-  return (properties & IsHidden) != 0;
-}
-bool TestCaseInfo::throws() const {
-  return (properties & Throws) != 0;
-}
-bool TestCaseInfo::okToFail() const {
-  return (properties & (ShouldFail | MayFail)) != 0;
-}
-bool TestCaseInfo::expectedToFail() const {
-  return (properties & (ShouldFail)) != 0;
-}
-
-std::string TestCaseInfo::tagsAsString() const {
-  std::string ret;
-  // '[' and ']' per tag
-  std::size_t full_size = 2 * tags.size();
-  for (const auto &tag : tags) {
-    full_size += tag.size();
-  }
-  ret.reserve(full_size);
-  for (const auto &tag : tags) {
-    ret.push_back('[');
-    ret.append(tag);
-    ret.push_back(']');
-  }
-
-  return ret;
-}
-
-TestCase::TestCase(ITestInvoker *testCase, TestCaseInfo &&info) : TestCaseInfo(std::move(info)), test(testCase) {
-}
-
-TestCase TestCase::withName(std::string const &_newName) const {
-  TestCase other(*this);
-  other.name = _newName;
-  return other;
-}
-
-void TestCase::invoke() const {
-  test->invoke();
-}
-
-bool TestCase::operator==(TestCase const &other) const {
-  return test.get() == other.test.get() && name == other.name && className == other.className;
-}
-
-bool TestCase::operator<(TestCase const &other) const {
-  return name < other.name;
-}
-
-TestCaseInfo const &TestCase::getTestCaseInfo() const {
-  return *this;
-}
-
-} // end namespace Catch
-// end catch_test_case_info.cpp
-// start catch_test_case_registry_impl.cpp
-
-#include <sstream>
-
-namespace Catch {
-
-std::vector<TestCase> sortTests(IConfig const &config, std::vector<TestCase> const &unsortedTestCases) {
-
-  std::vector<TestCase> sorted = unsortedTestCases;
-
-  switch (config.runOrder()) {
-  case RunTests::InLexicographicalOrder:
-    std::sort(sorted.begin(), sorted.end());
-    break;
-  case RunTests::InRandomOrder:
-    seedRng(config);
-    RandomNumberGenerator::shuffle(sorted);
-    break;
-  case RunTests::InDeclarationOrder:
-    // already in declaration order
-    break;
-  }
-  return sorted;
-}
-bool matchTest(TestCase const &testCase, TestSpec const &testSpec, IConfig const &config) {
-  return testSpec.matches(testCase) && (config.allowThrows() || !testCase.throws());
-}
-
-void enforceNoDuplicateTestCases(std::vector<TestCase> const &functions) {
-  std::set<TestCase> seenFunctions;
-  for (auto const &function : functions) {
-    auto prev = seenFunctions.insert(function);
-    CATCH_ENFORCE(prev.second, "error: TEST_CASE( \"" << function.name << "\" ) already defined.\n"
-                                                      << "\tFirst seen at " << prev.first->getTestCaseInfo().lineInfo
-                                                      << "\n"
-                                                      << "\tRedefined at " << function.getTestCaseInfo().lineInfo);
-  }
-}
-
-std::vector<TestCase> filterTests(std::vector<TestCase> const &testCases, TestSpec const &testSpec,
-                                  IConfig const &config) {
-  std::vector<TestCase> filtered;
-  filtered.reserve(testCases.size());
-  for (auto const &testCase : testCases)
-    if (matchTest(testCase, testSpec, config))
-      filtered.push_back(testCase);
-  return filtered;
-}
-std::vector<TestCase> const &getAllTestCasesSorted(IConfig const &config) {
-  return getRegistryHub().getTestCaseRegistry().getAllTestsSorted(config);
-}
-
-void TestRegistry::registerTest(TestCase const &testCase) {
-  std::string name = testCase.getTestCaseInfo().name;
-  if (name.empty()) {
-    ReusableStringStream rss;
-    rss << "Anonymous test case " << ++m_unnamedCount;
-    return registerTest(testCase.withName(rss.str()));
-  }
-  m_functions.push_back(testCase);
-}
-
-std::vector<TestCase> const &TestRegistry::getAllTests() const {
-  return m_functions;
-}
-std::vector<TestCase> const &TestRegistry::getAllTestsSorted(IConfig const &config) const {
-  if (m_sortedFunctions.empty())
-    enforceNoDuplicateTestCases(m_functions);
-
-  if (m_currentSortOrder != config.runOrder() || m_sortedFunctions.empty()) {
-    m_sortedFunctions  = sortTests(config, m_functions);
-    m_currentSortOrder = config.runOrder();
-  }
-  return m_sortedFunctions;
-}
-
-///////////////////////////////////////////////////////////////////////////
-TestInvokerAsFunction::TestInvokerAsFunction(void (*testAsFunction)()) noexcept : m_testAsFunction(testAsFunction) {
-}
-
-void TestInvokerAsFunction::invoke() const {
-  m_testAsFunction();
-}
-
-std::string extractClassName(StringRef const &classOrQualifiedMethodName) {
-  std::string className = classOrQualifiedMethodName;
-  if (startsWith(className, '&')) {
-    std::size_t lastColons        = className.rfind("::");
-    std::size_t penultimateColons = className.rfind("::", lastColons - 1);
-    if (penultimateColons == std::string::npos)
-      penultimateColons = 1;
-    className = className.substr(penultimateColons, lastColons - penultimateColons);
-  }
-  return className;
-}
-
-} // end namespace Catch
-// end catch_test_case_registry_impl.cpp
-// start catch_test_case_tracker.cpp
-
-#include <algorithm>
-#include <cassert>
-#include <memory>
-#include <sstream>
-#include <stdexcept>
-
-#if defined(__clang__)
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wexit-time-destructors"
-#endif
-
-namespace Catch {
-namespace TestCaseTracking {
-
-NameAndLocation::NameAndLocation(std::string const &_name, SourceLineInfo const &_location)
-    : name(_name), location(_location) {
-}
-
-ITracker::~ITracker() = default;
-
-TrackerContext &TrackerContext::instance() {
-  static TrackerContext s_instance;
-  return s_instance;
-}
-
-ITracker &TrackerContext::startRun() {
-  m_rootTracker = std::make_shared<SectionTracker>(NameAndLocation("{root}", CATCH_INTERNAL_LINEINFO), *this, nullptr);
-  m_currentTracker = nullptr;
-  m_runState       = Executing;
-  return *m_rootTracker;
-}
-
-void TrackerContext::endRun() {
-  m_rootTracker.reset();
-  m_currentTracker = nullptr;
-  m_runState       = NotStarted;
-}
-
-void TrackerContext::startCycle() {
-  m_currentTracker = m_rootTracker.get();
-  m_runState       = Executing;
-}
-void TrackerContext::completeCycle() {
-  m_runState = CompletedCycle;
-}
-
-bool TrackerContext::completedCycle() const {
-  return m_runState == CompletedCycle;
-}
-ITracker &TrackerContext::currentTracker() {
-  return *m_currentTracker;
-}
-void TrackerContext::setCurrentTracker(ITracker *tracker) {
-  m_currentTracker = tracker;
-}
-
-TrackerBase::TrackerHasName::TrackerHasName(NameAndLocation const &nameAndLocation)
-    : m_nameAndLocation(nameAndLocation) {
-}
-bool TrackerBase::TrackerHasName::operator()(ITrackerPtr const &tracker) const {
-  return tracker->nameAndLocation().name == m_nameAndLocation.name &&
-         tracker->nameAndLocation().location == m_nameAndLocation.location;
-}
-
-TrackerBase::TrackerBase(NameAndLocation const &nameAndLocation, TrackerContext &ctx, ITracker *parent)
-    : m_nameAndLocation(nameAndLocation), m_ctx(ctx), m_parent(parent) {
-}
-
-NameAndLocation const &TrackerBase::nameAndLocation() const {
-  return m_nameAndLocation;
-}
-bool TrackerBase::isComplete() const {
-  return m_runState == CompletedSuccessfully || m_runState == Failed;
-}
-bool TrackerBase::isSuccessfullyCompleted() const {
-  return m_runState == CompletedSuccessfully;
-}
-bool TrackerBase::isOpen() const {
-  return m_runState != NotStarted && !isComplete();
-}
-bool TrackerBase::hasChildren() const {
-  return !m_children.empty();
-}
-
-void TrackerBase::addChild(ITrackerPtr const &child) {
-  m_children.push_back(child);
-}
-
-ITrackerPtr TrackerBase::findChild(NameAndLocation const &nameAndLocation) {
-  auto it = std::find_if(m_children.begin(), m_children.end(), TrackerHasName(nameAndLocation));
-  return (it != m_children.end()) ? *it : nullptr;
-}
-ITracker &TrackerBase::parent() {
-  assert(m_parent); // Should always be non-null except for root
-  return *m_parent;
-}
-
-void TrackerBase::openChild() {
-  if (m_runState != ExecutingChildren) {
-    m_runState = ExecutingChildren;
-    if (m_parent)
-      m_parent->openChild();
-  }
-}
-
-bool TrackerBase::isSectionTracker() const {
-  return false;
-}
-bool TrackerBase::isIndexTracker() const {
-  return false;
-}
-
-void TrackerBase::open() {
-  m_runState = Executing;
-  moveToThis();
-  if (m_parent)
-    m_parent->openChild();
-}
-
-void TrackerBase::close() {
-
-  // Close any still open children (e.g. generators)
-  while (&m_ctx.currentTracker() != this)
-    m_ctx.currentTracker().close();
-
-  switch (m_runState) {
-  case NeedsAnotherRun:
-    break;
-
-  case Executing:
-    m_runState = CompletedSuccessfully;
-    break;
-  case ExecutingChildren:
-    if (m_children.empty() || m_children.back()->isComplete())
-      m_runState = CompletedSuccessfully;
-    break;
-
-  case NotStarted:
-  case CompletedSuccessfully:
-  case Failed:
-    CATCH_INTERNAL_ERROR("Illogical state: " << m_runState);
-
-  default:
-    CATCH_INTERNAL_ERROR("Unknown state: " << m_runState);
-  }
-  moveToParent();
-  m_ctx.completeCycle();
-}
-void TrackerBase::fail() {
-  m_runState = Failed;
-  if (m_parent)
-    m_parent->markAsNeedingAnotherRun();
-  moveToParent();
-  m_ctx.completeCycle();
-}
-void TrackerBase::markAsNeedingAnotherRun() {
-  m_runState = NeedsAnotherRun;
-}
-
-void TrackerBase::moveToParent() {
-  assert(m_parent);
-  m_ctx.setCurrentTracker(m_parent);
-}
-void TrackerBase::moveToThis() {
-  m_ctx.setCurrentTracker(this);
-}
-
-SectionTracker::SectionTracker(NameAndLocation const &nameAndLocation, TrackerContext &ctx, ITracker *parent)
-    : TrackerBase(nameAndLocation, ctx, parent) {
-  if (parent) {
-    while (!parent->isSectionTracker())
-      parent = &parent->parent();
-
-    SectionTracker &parentSection = static_cast<SectionTracker &>(*parent);
-    addNextFilters(parentSection.m_filters);
-  }
-}
-
-bool SectionTracker::isSectionTracker() const {
-  return true;
-}
-
-SectionTracker &SectionTracker::acquire(TrackerContext &ctx, NameAndLocation const &nameAndLocation) {
-  std::shared_ptr<SectionTracker> section;
-
-  ITracker &currentTracker = ctx.currentTracker();
-  if (ITrackerPtr childTracker = currentTracker.findChild(nameAndLocation)) {
-    assert(childTracker);
-    assert(childTracker->isSectionTracker());
-    section = std::static_pointer_cast<SectionTracker>(childTracker);
-  } else {
-    section = std::make_shared<SectionTracker>(nameAndLocation, ctx, &currentTracker);
-    currentTracker.addChild(section);
-  }
-  if (!ctx.completedCycle())
-    section->tryOpen();
-  return *section;
-}
-
-void SectionTracker::tryOpen() {
-  if (!isComplete() && (m_filters.empty() || m_filters[0].empty() || m_filters[0] == m_nameAndLocation.name))
-    open();
-}
-
-void SectionTracker::addInitialFilters(std::vector<std::string> const &filters) {
-  if (!filters.empty()) {
-    m_filters.push_back(""); // Root - should never be consulted
-    m_filters.push_back(""); // Test Case - not a section filter
-    m_filters.insert(m_filters.end(), filters.begin(), filters.end());
-  }
-}
-void SectionTracker::addNextFilters(std::vector<std::string> const &filters) {
-  if (filters.size() > 1)
-    m_filters.insert(m_filters.end(), ++filters.begin(), filters.end());
-}
-
-IndexTracker::IndexTracker(NameAndLocation const &nameAndLocation, TrackerContext &ctx, ITracker *parent, int size)
-    : TrackerBase(nameAndLocation, ctx, parent), m_size(size) {
-}
-
-bool IndexTracker::isIndexTracker() const {
-  return true;
-}
-
-IndexTracker &IndexTracker::acquire(TrackerContext &ctx, NameAndLocation const &nameAndLocation, int size) {
-  std::shared_ptr<IndexTracker> tracker;
-
-  ITracker &currentTracker = ctx.currentTracker();
-  if (ITrackerPtr childTracker = currentTracker.findChild(nameAndLocation)) {
-    assert(childTracker);
-    assert(childTracker->isIndexTracker());
-    tracker = std::static_pointer_cast<IndexTracker>(childTracker);
-  } else {
-    tracker = std::make_shared<IndexTracker>(nameAndLocation, ctx, &currentTracker, size);
-    currentTracker.addChild(tracker);
-  }
-
-  if (!ctx.completedCycle() && !tracker->isComplete()) {
-    if (tracker->m_runState != ExecutingChildren && tracker->m_runState != NeedsAnotherRun)
-      tracker->moveNext();
-    tracker->open();
-  }
-
-  return *tracker;
-}
-
-int IndexTracker::index() const {
-  return m_index;
-}
-
-void IndexTracker::moveNext() {
-  m_index++;
-  m_children.clear();
-}
-
-void IndexTracker::close() {
-  TrackerBase::close();
-  if (m_runState == CompletedSuccessfully && m_index < m_size - 1)
-    m_runState = Executing;
-}
-
-} // namespace TestCaseTracking
-
-using TestCaseTracking::ITracker;
-using TestCaseTracking::TrackerContext;
-using TestCaseTracking::SectionTracker;
-using TestCaseTracking::IndexTracker;
-
-} // namespace Catch
-
-#if defined(__clang__)
-#pragma clang diagnostic pop
-#endif
-// end catch_test_case_tracker.cpp
-// start catch_test_registry.cpp
-
-namespace Catch {
-
-auto makeTestInvoker(void (*testAsFunction)()) noexcept -> ITestInvoker * {
-  return new (std::nothrow) TestInvokerAsFunction(testAsFunction);
-}
-
-NameAndTags::NameAndTags(StringRef const &name_, StringRef const &tags_) noexcept : name(name_), tags(tags_) {
-}
-
-AutoReg::AutoReg(ITestInvoker *invoker, SourceLineInfo const &lineInfo, StringRef const &classOrMethod,
-                 NameAndTags const &nameAndTags) noexcept {
-  try {
-    getMutableRegistryHub().registerTest(makeTestCase(invoker, extractClassName(classOrMethod), nameAndTags, lineInfo));
-  } catch (...) {
-    // Do not throw when constructing global objects, instead register the exception to be processed later
-    getMutableRegistryHub().registerStartupException();
-  }
-}
-
-AutoReg::~AutoReg() = default;
-} // namespace Catch
-// end catch_test_registry.cpp
-// start catch_test_spec.cpp
-
-#include <algorithm>
-#include <memory>
-#include <string>
-#include <vector>
-
-namespace Catch {
-
-TestSpec::Pattern::~Pattern()                 = default;
-TestSpec::NamePattern::~NamePattern()         = default;
-TestSpec::TagPattern::~TagPattern()           = default;
-TestSpec::ExcludedPattern::~ExcludedPattern() = default;
-
-TestSpec::NamePattern::NamePattern(std::string const &name) : m_wildcardPattern(toLower(name), CaseSensitive::No) {
-}
-bool TestSpec::NamePattern::matches(TestCaseInfo const &testCase) const {
-  return m_wildcardPattern.matches(toLower(testCase.name));
-}
-
-TestSpec::TagPattern::TagPattern(std::string const &tag) : m_tag(toLower(tag)) {
-}
-bool TestSpec::TagPattern::matches(TestCaseInfo const &testCase) const {
-  return std::find(begin(testCase.lcaseTags), end(testCase.lcaseTags), m_tag) != end(testCase.lcaseTags);
-}
-
-TestSpec::ExcludedPattern::ExcludedPattern(PatternPtr const &underlyingPattern)
-    : m_underlyingPattern(underlyingPattern) {
-}
-bool TestSpec::ExcludedPattern::matches(TestCaseInfo const &testCase) const {
-  return !m_underlyingPattern->matches(testCase);
-}
-
-bool TestSpec::Filter::matches(TestCaseInfo const &testCase) const {
-  // All patterns in a filter must match for the filter to be a match
-  for (auto const &pattern : m_patterns) {
-    if (!pattern->matches(testCase))
-      return false;
-  }
-  return true;
-}
-
-bool TestSpec::hasFilters() const {
-  return !m_filters.empty();
-}
-bool TestSpec::matches(TestCaseInfo const &testCase) const {
-  // A TestSpec matches if any filter matches
-  for (auto const &filter : m_filters)
-    if (filter.matches(testCase))
-      return true;
-  return false;
-}
-} // namespace Catch
-// end catch_test_spec.cpp
-// start catch_test_spec_parser.cpp
-
-namespace Catch {
-
-TestSpecParser::TestSpecParser(ITagAliasRegistry const &tagAliases) : m_tagAliases(&tagAliases) {
-}
-
-TestSpecParser &TestSpecParser::parse(std::string const &arg) {
-  m_mode      = None;
-  m_exclusion = false;
-  m_start     = std::string::npos;
-  m_arg       = m_tagAliases->expandAliases(arg);
-  m_escapeChars.clear();
-  for (m_pos = 0; m_pos < m_arg.size(); ++m_pos)
-    visitChar(m_arg[m_pos]);
-  if (m_mode == Name)
-    addPattern<TestSpec::NamePattern>();
-  return *this;
-}
-TestSpec TestSpecParser::testSpec() {
-  addFilter();
-  return m_testSpec;
-}
-
-void TestSpecParser::visitChar(char c) {
-  if (m_mode == None) {
-    switch (c) {
-    case ' ':
-      return;
-    case '~':
-      m_exclusion = true;
-      return;
-    case '[':
-      return startNewMode(Tag, ++m_pos);
-    case '"':
-      return startNewMode(QuotedName, ++m_pos);
-    case '\\':
-      return escape();
-    default:
-      startNewMode(Name, m_pos);
-      break;
-    }
-  }
-  if (m_mode == Name) {
-    if (c == ',') {
-      addPattern<TestSpec::NamePattern>();
-      addFilter();
-    } else if (c == '[') {
-      if (subString() == "exclude:")
-        m_exclusion = true;
-      else
-        addPattern<TestSpec::NamePattern>();
-      startNewMode(Tag, ++m_pos);
-    } else if (c == '\\')
-      escape();
-  } else if (m_mode == EscapedName)
-    m_mode = Name;
-  else if (m_mode == QuotedName && c == '"')
-    addPattern<TestSpec::NamePattern>();
-  else if (m_mode == Tag && c == ']')
-    addPattern<TestSpec::TagPattern>();
-}
-void TestSpecParser::startNewMode(Mode mode, std::size_t start) {
-  m_mode  = mode;
-  m_start = start;
-}
-void TestSpecParser::escape() {
-  if (m_mode == None)
-    m_start = m_pos;
-  m_mode = EscapedName;
-  m_escapeChars.push_back(m_pos);
-}
-std::string TestSpecParser::subString() const {
-  return m_arg.substr(m_start, m_pos - m_start);
-}
-
-void TestSpecParser::addFilter() {
-  if (!m_currentFilter.m_patterns.empty()) {
-    m_testSpec.m_filters.push_back(m_currentFilter);
-    m_currentFilter = TestSpec::Filter();
-  }
-}
-
-TestSpec parseTestSpec(std::string const &arg) {
-  return TestSpecParser(ITagAliasRegistry::get()).parse(arg).testSpec();
-}
-
-} // namespace Catch
-// end catch_test_spec_parser.cpp
-// start catch_timer.cpp
-
-#include <chrono>
-
-static const uint64_t nanosecondsInSecond = 1000000000;
-
-namespace Catch {
-
-auto getCurrentNanosecondsSinceEpoch() -> uint64_t {
-  return std::chrono::duration_cast<std::chrono::nanoseconds>(
-             std::chrono::high_resolution_clock::now().time_since_epoch())
-      .count();
-}
-
-auto estimateClockResolution() -> uint64_t {
-  uint64_t sum                     = 0;
-  static const uint64_t iterations = 1000000;
-
-  auto startTime = getCurrentNanosecondsSinceEpoch();
-
-  for (std::size_t i = 0; i < iterations; ++i) {
-
-    uint64_t ticks;
-    uint64_t baseTicks = getCurrentNanosecondsSinceEpoch();
-    do {
-      ticks = getCurrentNanosecondsSinceEpoch();
-    } while (ticks == baseTicks);
-
-    auto delta = ticks - baseTicks;
-    sum += delta;
-
-    // If we have been calibrating for over 3 seconds -- the clock
-    // is terrible and we should move on.
-    // TBD: How to signal that the measured resolution is probably wrong?
-    if (ticks > startTime + 3 * nanosecondsInSecond) {
-      return sum / i;
-    }
-  }
-
-  // We're just taking the mean, here. To do better we could take the std. dev and exclude outliers
-  // - and potentially do more iterations if there's a high variance.
-  return sum / iterations;
-}
-auto getEstimatedClockResolution() -> uint64_t {
-  static auto s_resolution = estimateClockResolution();
-  return s_resolution;
-}
-
-void Timer::start() {
-  m_nanoseconds = getCurrentNanosecondsSinceEpoch();
-}
-auto Timer::getElapsedNanoseconds() const -> uint64_t {
-  return getCurrentNanosecondsSinceEpoch() - m_nanoseconds;
-}
-auto Timer::getElapsedMicroseconds() const -> uint64_t {
-  return getElapsedNanoseconds() / 1000;
-}
-auto Timer::getElapsedMilliseconds() const -> unsigned int {
-  return static_cast<unsigned int>(getElapsedMicroseconds() / 1000);
-}
-auto Timer::getElapsedSeconds() const -> double {
-  return getElapsedMicroseconds() / 1000000.0;
-}
-
-} // namespace Catch
-// end catch_timer.cpp
-// start catch_tostring.cpp
-
-#if defined(__clang__)
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wexit-time-destructors"
-#pragma clang diagnostic ignored "-Wglobal-constructors"
-#endif
-
-// Enable specific decls locally
-#if !defined(CATCH_CONFIG_ENABLE_CHRONO_STRINGMAKER)
-#define CATCH_CONFIG_ENABLE_CHRONO_STRINGMAKER
-#endif
-
-#include <cmath>
-#include <iomanip>
-
-namespace Catch {
-
-namespace Detail {
-
-const std::string unprintableString = "{?}";
-
-namespace {
-const int hexThreshold = 255;
-
-struct Endianness {
-  enum Arch { Big, Little };
-
-  static Arch which() {
-    union _ {
-      int asInt;
-      char asChar[sizeof(int)];
-    } u;
-
-    u.asInt = 1;
-    return (u.asChar[sizeof(int) - 1] == 1) ? Big : Little;
-  }
-};
-} // namespace
-
-std::string rawMemoryToString(const void *object, std::size_t size) {
-  // Reverse order for little endian architectures
-  int i = 0, end = static_cast<int>(size), inc = 1;
-  if (Endianness::which() == Endianness::Little) {
-    i   = end - 1;
-    end = inc = -1;
-  }
-
-  unsigned char const *bytes = static_cast<unsigned char const *>(object);
-  ReusableStringStream rss;
-  rss << "0x" << std::setfill('0') << std::hex;
-  for (; i != end; i += inc)
-    rss << std::setw(2) << static_cast<unsigned>(bytes[i]);
-  return rss.str();
-}
-} // namespace Detail
-
-template <typename T> std::string fpToString(T value, int precision) {
-  if (std::isnan(value)) {
-    return "nan";
-  }
-
-  ReusableStringStream rss;
-  rss << std::setprecision(precision) << std::fixed << value;
-  std::string d = rss.str();
-  std::size_t i = d.find_last_not_of('0');
-  if (i != std::string::npos && i != d.size() - 1) {
-    if (d[i] == '.')
-      i++;
-    d = d.substr(0, i + 1);
-  }
-  return d;
-}
-
-//// ======================================================= ////
-//
-//   Out-of-line defs for full specialization of StringMaker
-//
-//// ======================================================= ////
-
-std::string StringMaker<std::string>::convert(const std::string &str) {
-  if (!getCurrentContext().getConfig()->showInvisibles()) {
-    return '"' + str + '"';
-  }
-
-  std::string s("\"");
-  for (char c : str) {
-    switch (c) {
-    case '\n':
-      s.append("\\n");
-      break;
-    case '\t':
-      s.append("\\t");
-      break;
-    default:
-      s.push_back(c);
-      break;
-    }
-  }
-  s.append("\"");
-  return s;
-}
-
-#ifdef CATCH_CONFIG_WCHAR
-std::string StringMaker<std::wstring>::convert(const std::wstring &wstr) {
-  std::string s;
-  s.reserve(wstr.size());
-  for (auto c : wstr) {
-    s += (c <= 0xff) ? static_cast<char>(c) : '?';
-  }
-  return ::Catch::Detail::stringify(s);
-}
-#endif
-
-std::string StringMaker<char const *>::convert(char const *str) {
-  if (str) {
-    return ::Catch::Detail::stringify(std::string{str});
-  } else {
-    return {"{null string}"};
-  }
-}
-std::string StringMaker<char *>::convert(char *str) {
-  if (str) {
-    return ::Catch::Detail::stringify(std::string{str});
-  } else {
-    return {"{null string}"};
-  }
-}
-#ifdef CATCH_CONFIG_WCHAR
-std::string StringMaker<wchar_t const *>::convert(wchar_t const *str) {
-  if (str) {
-    return ::Catch::Detail::stringify(std::wstring{str});
-  } else {
-    return {"{null string}"};
-  }
-}
-std::string StringMaker<wchar_t *>::convert(wchar_t *str) {
-  if (str) {
-    return ::Catch::Detail::stringify(std::wstring{str});
-  } else {
-    return {"{null string}"};
-  }
-}
-#endif
-
-std::string StringMaker<int>::convert(int value) {
-  return ::Catch::Detail::stringify(static_cast<long long>(value));
-}
-std::string StringMaker<long>::convert(long value) {
-  return ::Catch::Detail::stringify(static_cast<long long>(value));
-}
-std::string StringMaker<long long>::convert(long long value) {
-  ReusableStringStream rss;
-  rss << value;
-  if (value > Detail::hexThreshold) {
-    rss << " (0x" << std::hex << value << ')';
-  }
-  return rss.str();
-}
-
-std::string StringMaker<unsigned int>::convert(unsigned int value) {
-  return ::Catch::Detail::stringify(static_cast<unsigned long long>(value));
-}
-std::string StringMaker<unsigned long>::convert(unsigned long value) {
-  return ::Catch::Detail::stringify(static_cast<unsigned long long>(value));
-}
-std::string StringMaker<unsigned long long>::convert(unsigned long long value) {
-  ReusableStringStream rss;
-  rss << value;
-  if (value > Detail::hexThreshold) {
-    rss << " (0x" << std::hex << value << ')';
-  }
-  return rss.str();
-}
-
-std::string StringMaker<bool>::convert(bool b) {
-  return b ? "true" : "false";
-}
-
-std::string StringMaker<char>::convert(char value) {
-  if (value == '\r') {
-    return "'\\r'";
-  } else if (value == '\f') {
-    return "'\\f'";
-  } else if (value == '\n') {
-    return "'\\n'";
-  } else if (value == '\t') {
-    return "'\\t'";
-  } else if ('\0' <= value && value < ' ') {
-    return ::Catch::Detail::stringify(static_cast<unsigned int>(value));
-  } else {
-    char chstr[] = "' '";
-    chstr[1]     = value;
-    return chstr;
-  }
-}
-std::string StringMaker<signed char>::convert(signed char c) {
-  return ::Catch::Detail::stringify(static_cast<char>(c));
-}
-std::string StringMaker<unsigned char>::convert(unsigned char c) {
-  return ::Catch::Detail::stringify(static_cast<char>(c));
-}
-
-std::string StringMaker<std::nullptr_t>::convert(std::nullptr_t) {
-  return "nullptr";
-}
-
-std::string StringMaker<float>::convert(float value) {
-  return fpToString(value, 5) + 'f';
-}
-std::string StringMaker<double>::convert(double value) {
-  return fpToString(value, 10);
-}
-
-std::string ratio_string<std::atto>::symbol() {
-  return "a";
-}
-std::string ratio_string<std::femto>::symbol() {
-  return "f";
-}
-std::string ratio_string<std::pico>::symbol() {
-  return "p";
-}
-std::string ratio_string<std::nano>::symbol() {
-  return "n";
-}
-std::string ratio_string<std::micro>::symbol() {
-  return "u";
-}
-std::string ratio_string<std::milli>::symbol() {
-  return "m";
-}
-
-} // end namespace Catch
-
-#if defined(__clang__)
-#pragma clang diagnostic pop
-#endif
-
-// end catch_tostring.cpp
-// start catch_totals.cpp
-
-namespace Catch {
-
-Counts Counts::operator-(Counts const &other) const {
-  Counts diff;
-  diff.passed      = passed - other.passed;
-  diff.failed      = failed - other.failed;
-  diff.failedButOk = failedButOk - other.failedButOk;
-  return diff;
-}
-
-Counts &Counts::operator+=(Counts const &other) {
-  passed += other.passed;
-  failed += other.failed;
-  failedButOk += other.failedButOk;
-  return *this;
-}
-
-std::size_t Counts::total() const {
-  return passed + failed + failedButOk;
-}
-bool Counts::allPassed() const {
-  return failed == 0 && failedButOk == 0;
-}
-bool Counts::allOk() const {
-  return failed == 0;
-}
-
-Totals Totals::operator-(Totals const &other) const {
-  Totals diff;
-  diff.assertions = assertions - other.assertions;
-  diff.testCases  = testCases - other.testCases;
-  return diff;
-}
-
-Totals &Totals::operator+=(Totals const &other) {
-  assertions += other.assertions;
-  testCases += other.testCases;
-  return *this;
-}
-
-Totals Totals::delta(Totals const &prevTotals) const {
-  Totals diff = *this - prevTotals;
-  if (diff.assertions.failed > 0)
-    ++diff.testCases.failed;
-  else if (diff.assertions.failedButOk > 0)
-    ++diff.testCases.failedButOk;
-  else
-    ++diff.testCases.passed;
-  return diff;
-}
-
-} // namespace Catch
-// end catch_totals.cpp
-// start catch_uncaught_exceptions.cpp
-
-#include <exception>
-
-namespace Catch {
-bool uncaught_exceptions() {
-#if defined(CATCH_CONFIG_CPP17_UNCAUGHT_EXCEPTIONS)
-  return std::uncaught_exceptions() > 0;
-#else
-  return std::uncaught_exception();
-#endif
-}
-} // end namespace Catch
-// end catch_uncaught_exceptions.cpp
-// start catch_version.cpp
-
-#include <ostream>
-
-namespace Catch {
-
-Version::Version(unsigned int _majorVersion, unsigned int _minorVersion, unsigned int _patchNumber,
-                 char const *const _branchName, unsigned int _buildNumber)
-    : majorVersion(_majorVersion), minorVersion(_minorVersion), patchNumber(_patchNumber), branchName(_branchName),
-      buildNumber(_buildNumber) {
-}
-
-std::ostream &operator<<(std::ostream &os, Version const &version) {
-  os << version.majorVersion << '.' << version.minorVersion << '.' << version.patchNumber;
-  // branchName is never null -> 0th char is \0 if it is empty
-  if (version.branchName[0]) {
-    os << '-' << version.branchName << '.' << version.buildNumber;
-  }
-  return os;
-}
-
-Version const &libraryVersion() {
-  static Version version(2, 2, 3, "", 0);
-  return version;
-}
-
-} // namespace Catch
-// end catch_version.cpp
-// start catch_wildcard_pattern.cpp
-
-#include <sstream>
-
-namespace Catch {
-
-WildcardPattern::WildcardPattern(std::string const &pattern, CaseSensitive::Choice caseSensitivity)
-    : m_caseSensitivity(caseSensitivity), m_pattern(adjustCase(pattern)) {
-  if (startsWith(m_pattern, '*')) {
-    m_pattern  = m_pattern.substr(1);
-    m_wildcard = WildcardAtStart;
-  }
-  if (endsWith(m_pattern, '*')) {
-    m_pattern  = m_pattern.substr(0, m_pattern.size() - 1);
-    m_wildcard = static_cast<WildcardPosition>(m_wildcard | WildcardAtEnd);
-  }
-}
-
-bool WildcardPattern::matches(std::string const &str) const {
-  switch (m_wildcard) {
-  case NoWildcard:
-    return m_pattern == adjustCase(str);
-  case WildcardAtStart:
-    return endsWith(adjustCase(str), m_pattern);
-  case WildcardAtEnd:
-    return startsWith(adjustCase(str), m_pattern);
-  case WildcardAtBothEnds:
-    return contains(adjustCase(str), m_pattern);
-  default:
-    CATCH_INTERNAL_ERROR("Unknown enum");
-  }
-}
-
-std::string WildcardPattern::adjustCase(std::string const &str) const {
-  return m_caseSensitivity == CaseSensitive::No ? toLower(str) : str;
-}
-} // namespace Catch
-// end catch_wildcard_pattern.cpp
-// start catch_xmlwriter.cpp
-
-#include <iomanip>
-
-using uchar = unsigned char;
-
-namespace Catch {
-
-namespace {
-
-size_t trailingBytes(unsigned char c) {
-  if ((c & 0xE0) == 0xC0) {
-    return 2;
-  }
-  if ((c & 0xF0) == 0xE0) {
-    return 3;
-  }
-  if ((c & 0xF8) == 0xF0) {
-    return 4;
-  }
-  CATCH_INTERNAL_ERROR("Invalid multibyte utf-8 start byte encountered");
-}
-
-uint32_t headerValue(unsigned char c) {
-  if ((c & 0xE0) == 0xC0) {
-    return c & 0x1F;
-  }
-  if ((c & 0xF0) == 0xE0) {
-    return c & 0x0F;
-  }
-  if ((c & 0xF8) == 0xF0) {
-    return c & 0x07;
-  }
-  CATCH_INTERNAL_ERROR("Invalid multibyte utf-8 start byte encountered");
-}
-
-void hexEscapeChar(std::ostream &os, unsigned char c) {
-  os << "\\x" << std::uppercase << std::hex << std::setfill('0') << std::setw(2) << static_cast<int>(c);
-}
-
-} // anonymous namespace
-
-XmlEncode::XmlEncode(std::string const &str, ForWhat forWhat) : m_str(str), m_forWhat(forWhat) {
-}
-
-void XmlEncode::encodeTo(std::ostream &os) const {
-  // Apostrophe escaping not necessary if we always use " to write attributes
-  // (see: http://www.w3.org/TR/xml/#syntax)
-
-  for (std::size_t idx = 0; idx < m_str.size(); ++idx) {
-    uchar c = m_str[idx];
-    switch (c) {
-    case '<':
-      os << "&lt;";
-      break;
-    case '&':
-      os << "&amp;";
-      break;
-
-    case '>':
-      // See: http://www.w3.org/TR/xml/#syntax
-      if (idx > 2 && m_str[idx - 1] == ']' && m_str[idx - 2] == ']')
-        os << "&gt;";
-      else
-        os << c;
-      break;
-
-    case '\"':
-      if (m_forWhat == ForAttributes)
-        os << "&quot;";
-      else
-        os << c;
-      break;
-
-    default:
-      // Check for control characters and invalid utf-8
-
-      // Escape control characters in standard ascii
-      // see http://stackoverflow.com/questions/404107/why-are-control-characters-illegal-in-xml-1-0
-      if (c < 0x09 || (c > 0x0D && c < 0x20) || c == 0x7F) {
-        hexEscapeChar(os, c);
-        break;
-      }
-
-      // Plain ASCII: Write it to stream
-      if (c < 0x7F) {
-        os << c;
-        break;
-      }
-
-      // UTF-8 territory
-      // Check if the encoding is valid and if it is not, hex escape bytes.
-      // Important: We do not check the exact decoded values for validity, only the encoding format
-      // First check that this bytes is a valid lead byte:
-      // This means that it is not encoded as 1111 1XXX
-      // Or as 10XX XXXX
-      if (c < 0xC0 || c >= 0xF8) {
-        hexEscapeChar(os, c);
-        break;
-      }
-
-      auto encBytes = trailingBytes(c);
-      // Are there enough bytes left to avoid accessing out-of-bounds memory?
-      if (idx + encBytes - 1 >= m_str.size()) {
-        hexEscapeChar(os, c);
-        break;
-      }
-      // The header is valid, check data
-      // The next encBytes bytes must together be a valid utf-8
-      // This means: bitpattern 10XX XXXX and the extracted value is sane (ish)
-      bool valid     = true;
-      uint32_t value = headerValue(c);
-      for (std::size_t n = 1; n < encBytes; ++n) {
-        uchar nc = m_str[idx + n];
-        valid &= ((nc & 0xC0) == 0x80);
-        value = (value << 6) | (nc & 0x3F);
-      }
-
-      if (
-          // Wrong bit pattern of following bytes
-          (!valid) ||
-          // Overlong encodings
-          (value < 0x80) || (0x80 <= value && value < 0x800 && encBytes > 2) ||
-          (0x800 < value && value < 0x10000 && encBytes > 3) ||
-          // Encoded value out of range
-          (value >= 0x110000)) {
-        hexEscapeChar(os, c);
-        break;
-      }
-
-      // If we got here, this is in fact a valid(ish) utf-8 sequence
-      for (std::size_t n = 0; n < encBytes; ++n) {
-        os << m_str[idx + n];
-      }
-      idx += encBytes - 1;
-      break;
-    }
-  }
-}
-
-std::ostream &operator<<(std::ostream &os, XmlEncode const &xmlEncode) {
-  xmlEncode.encodeTo(os);
-  return os;
-}
-
-XmlWriter::ScopedElement::ScopedElement(XmlWriter *writer) : m_writer(writer) {
-}
-
-XmlWriter::ScopedElement::ScopedElement(ScopedElement &&other) noexcept : m_writer(other.m_writer) {
-  other.m_writer = nullptr;
-}
-XmlWriter::ScopedElement &XmlWriter::ScopedElement::operator=(ScopedElement &&other) noexcept {
-  if (m_writer) {
-    m_writer->endElement();
-  }
-  m_writer       = other.m_writer;
-  other.m_writer = nullptr;
-  return *this;
-}
-
-XmlWriter::ScopedElement::~ScopedElement() {
-  if (m_writer)
-    m_writer->endElement();
-}
-
-XmlWriter::ScopedElement &XmlWriter::ScopedElement::writeText(std::string const &text, bool indent) {
-  m_writer->writeText(text, indent);
-  return *this;
-}
-
-XmlWriter::XmlWriter(std::ostream &os) : m_os(os) {
-  writeDeclaration();
-}
-
-XmlWriter::~XmlWriter() {
-  while (!m_tags.empty())
-    endElement();
-}
-
-XmlWriter &XmlWriter::startElement(std::string const &name) {
-  ensureTagClosed();
-  newlineIfNecessary();
-  m_os << m_indent << '<' << name;
-  m_tags.push_back(name);
-  m_indent += "  ";
-  m_tagIsOpen = true;
-  return *this;
-}
-
-XmlWriter::ScopedElement XmlWriter::scopedElement(std::string const &name) {
-  ScopedElement scoped(this);
-  startElement(name);
-  return scoped;
-}
-
-XmlWriter &XmlWriter::endElement() {
-  newlineIfNecessary();
-  m_indent = m_indent.substr(0, m_indent.size() - 2);
-  if (m_tagIsOpen) {
-    m_os << "/>";
-    m_tagIsOpen = false;
-  } else {
-    m_os << m_indent << "</" << m_tags.back() << ">";
-  }
-  m_os << std::endl;
-  m_tags.pop_back();
-  return *this;
-}
-
-XmlWriter &XmlWriter::writeAttribute(std::string const &name, std::string const &attribute) {
-  if (!name.empty() && !attribute.empty())
-    m_os << ' ' << name << "=\"" << XmlEncode(attribute, XmlEncode::ForAttributes) << '"';
-  return *this;
-}
-
-XmlWriter &XmlWriter::writeAttribute(std::string const &name, bool attribute) {
-  m_os << ' ' << name << "=\"" << (attribute ? "true" : "false") << '"';
-  return *this;
-}
-
-XmlWriter &XmlWriter::writeText(std::string const &text, bool indent) {
-  if (!text.empty()) {
-    bool tagWasOpen = m_tagIsOpen;
-    ensureTagClosed();
-    if (tagWasOpen && indent)
-      m_os << m_indent;
-    m_os << XmlEncode(text);
-    m_needsNewline = true;
-  }
-  return *this;
-}
-
-XmlWriter &XmlWriter::writeComment(std::string const &text) {
-  ensureTagClosed();
-  m_os << m_indent << "<!--" << text << "-->";
-  m_needsNewline = true;
-  return *this;
-}
-
-void XmlWriter::writeStylesheetRef(std::string const &url) {
-  m_os << "<?xml-stylesheet type=\"text/xsl\" href=\"" << url << "\"?>\n";
-}
-
-XmlWriter &XmlWriter::writeBlankLine() {
-  ensureTagClosed();
-  m_os << '\n';
-  return *this;
-}
-
-void XmlWriter::ensureTagClosed() {
-  if (m_tagIsOpen) {
-    m_os << ">" << std::endl;
-    m_tagIsOpen = false;
-  }
-}
-
-void XmlWriter::writeDeclaration() {
-  m_os << "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
-}
-
-void XmlWriter::newlineIfNecessary() {
-  if (m_needsNewline) {
-    m_os << std::endl;
-    m_needsNewline = false;
-  }
-}
-} // namespace Catch
-// end catch_xmlwriter.cpp
-// start catch_reporter_bases.cpp
-
-#include <cassert>
-#include <cfloat>
-#include <cstdio>
-#include <cstring>
-#include <memory>
-
-namespace Catch {
-void prepareExpandedExpression(AssertionResult &result) {
-  result.getExpandedExpression();
-}
-
-// Because formatting using c++ streams is stateful, drop down to C is required
-// Alternatively we could use stringstream, but its performance is... not good.
-std::string getFormattedDuration(double duration) {
-  // Max exponent + 1 is required to represent the whole part
-  // + 1 for decimal point
-  // + 3 for the 3 decimal places
-  // + 1 for null terminator
-  const std::size_t maxDoubleSize = DBL_MAX_10_EXP + 1 + 1 + 3 + 1;
-  char buffer[maxDoubleSize];
-
-  // Save previous errno, to prevent sprintf from overwriting it
-  ErrnoGuard guard;
-#ifdef _MSC_VER
-  sprintf_s(buffer, "%.3f", duration);
-#else
-  sprintf(buffer, "%.3f", duration);
-#endif
-  return std::string(buffer);
-}
-
-TestEventListenerBase::TestEventListenerBase(ReporterConfig const &_config) : StreamingReporterBase(_config) {
-}
-
-void TestEventListenerBase::assertionStarting(AssertionInfo const &) {
-}
-
-bool TestEventListenerBase::assertionEnded(AssertionStats const &) {
-  return false;
-}
-
-} // end namespace Catch
-// end catch_reporter_bases.cpp
-// start catch_reporter_compact.cpp
-
-namespace {
-
-#ifdef CATCH_PLATFORM_MAC
-const char *failedString() {
-  return "FAILED";
-}
-const char *passedString() {
-  return "PASSED";
-}
-#else
-const char *failedString() {
-  return "failed";
-}
-const char *passedString() {
-  return "passed";
-}
-#endif
-
-// Colour::LightGrey
-Catch::Colour::Code dimColour() {
-  return Catch::Colour::FileName;
-}
-
-std::string bothOrAll(std::size_t count) {
-  return count == 1 ? std::string() : count == 2 ? "both " : "all ";
-}
-
-} // anon namespace
-
-namespace Catch {
-namespace {
-// Colour, message variants:
-// - white: No tests ran.
-// -   red: Failed [both/all] N test cases, failed [both/all] M assertions.
-// - white: Passed [both/all] N test cases (no assertions).
-// -   red: Failed N tests cases, failed M assertions.
-// - green: Passed [both/all] N tests cases with M assertions.
-void printTotals(std::ostream &out, const Totals &totals) {
-  if (totals.testCases.total() == 0) {
-    out << "No tests ran.";
-  } else if (totals.testCases.failed == totals.testCases.total()) {
-    Colour colour(Colour::ResultError);
-    const std::string qualify_assertions_failed =
-        totals.assertions.failed == totals.assertions.total() ? bothOrAll(totals.assertions.failed) : std::string();
-    out << "Failed " << bothOrAll(totals.testCases.failed) << pluralise(totals.testCases.failed, "test case")
-        << ", "
-           "failed "
-        << qualify_assertions_failed << pluralise(totals.assertions.failed, "assertion") << '.';
-  } else if (totals.assertions.total() == 0) {
-    out << "Passed " << bothOrAll(totals.testCases.total()) << pluralise(totals.testCases.total(), "test case")
-        << " (no assertions).";
-  } else if (totals.assertions.failed) {
-    Colour colour(Colour::ResultError);
-    out << "Failed " << pluralise(totals.testCases.failed, "test case")
-        << ", "
-           "failed "
-        << pluralise(totals.assertions.failed, "assertion") << '.';
-  } else {
-    Colour colour(Colour::ResultSuccess);
-    out << "Passed " << bothOrAll(totals.testCases.passed) << pluralise(totals.testCases.passed, "test case")
-        << " with " << pluralise(totals.assertions.passed, "assertion") << '.';
-  }
-}
-
-// Implementation of CompactReporter formatting
-class AssertionPrinter {
-public:
-  AssertionPrinter &operator=(AssertionPrinter const &) = delete;
-  AssertionPrinter(AssertionPrinter const &)            = delete;
-  AssertionPrinter(std::ostream &_stream, AssertionStats const &_stats, bool _printInfoMessages)
-      : stream(_stream), result(_stats.assertionResult), messages(_stats.infoMessages),
-        itMessage(_stats.infoMessages.begin()), printInfoMessages(_printInfoMessages) {
-  }
-
-  void print() {
-    printSourceInfo();
-
-    itMessage = messages.begin();
-
-    switch (result.getResultType()) {
-    case ResultWas::Ok:
-      printResultType(Colour::ResultSuccess, passedString());
-      printOriginalExpression();
-      printReconstructedExpression();
-      if (!result.hasExpression())
-        printRemainingMessages(Colour::None);
-      else
-        printRemainingMessages();
-      break;
-    case ResultWas::ExpressionFailed:
-      if (result.isOk())
-        printResultType(Colour::ResultSuccess, failedString() + std::string(" - but was ok"));
-      else
-        printResultType(Colour::Error, failedString());
-      printOriginalExpression();
-      printReconstructedExpression();
-      printRemainingMessages();
-      break;
-    case ResultWas::ThrewException:
-      printResultType(Colour::Error, failedString());
-      printIssue("unexpected exception with message:");
-      printMessage();
-      printExpressionWas();
-      printRemainingMessages();
-      break;
-    case ResultWas::FatalErrorCondition:
-      printResultType(Colour::Error, failedString());
-      printIssue("fatal error condition with message:");
-      printMessage();
-      printExpressionWas();
-      printRemainingMessages();
-      break;
-    case ResultWas::DidntThrowException:
-      printResultType(Colour::Error, failedString());
-      printIssue("expected exception, got none");
-      printExpressionWas();
-      printRemainingMessages();
-      break;
-    case ResultWas::Info:
-      printResultType(Colour::None, "info");
-      printMessage();
-      printRemainingMessages();
-      break;
-    case ResultWas::Warning:
-      printResultType(Colour::None, "warning");
-      printMessage();
-      printRemainingMessages();
-      break;
-    case ResultWas::ExplicitFailure:
-      printResultType(Colour::Error, failedString());
-      printIssue("explicitly");
-      printRemainingMessages(Colour::None);
-      break;
-    // These cases are here to prevent compiler warnings
-    case ResultWas::Unknown:
-    case ResultWas::FailureBit:
-    case ResultWas::Exception:
-      printResultType(Colour::Error, "** internal error **");
-      break;
-    }
-  }
-
-private:
-  void printSourceInfo() const {
-    Colour colourGuard(Colour::FileName);
-    stream << result.getSourceInfo() << ':';
-  }
-
-  void printResultType(Colour::Code colour, std::string const &passOrFail) const {
-    if (!passOrFail.empty()) {
-      {
-        Colour colourGuard(colour);
-        stream << ' ' << passOrFail;
-      }
-      stream << ':';
-    }
-  }
-
-  void printIssue(std::string const &issue) const {
-    stream << ' ' << issue;
-  }
-
-  void printExpressionWas() {
-    if (result.hasExpression()) {
-      stream << ';';
-      {
-        Colour colour(dimColour());
-        stream << " expression was:";
-      }
-      printOriginalExpression();
-    }
-  }
-
-  void printOriginalExpression() const {
-    if (result.hasExpression()) {
-      stream << ' ' << result.getExpression();
-    }
-  }
-
-  void printReconstructedExpression() const {
-    if (result.hasExpandedExpression()) {
-      {
-        Colour colour(dimColour());
-        stream << " for: ";
-      }
-      stream << result.getExpandedExpression();
-    }
-  }
-
-  void printMessage() {
-    if (itMessage != messages.end()) {
-      stream << " '" << itMessage->message << '\'';
-      ++itMessage;
-    }
-  }
-
-  void printRemainingMessages(Colour::Code colour = dimColour()) {
-    if (itMessage == messages.end())
-      return;
-
-    // using messages.end() directly yields (or auto) compilation error:
-    std::vector<MessageInfo>::const_iterator itEnd = messages.end();
-    const std::size_t N                            = static_cast<std::size_t>(std::distance(itMessage, itEnd));
-
-    {
-      Colour colourGuard(colour);
-      stream << " with " << pluralise(N, "message") << ':';
-    }
-
-    for (; itMessage != itEnd;) {
-      // If this assertion is a warning ignore any INFO messages
-      if (printInfoMessages || itMessage->type != ResultWas::Info) {
-        stream << " '" << itMessage->message << '\'';
-        if (++itMessage != itEnd) {
-          Colour colourGuard(dimColour());
-          stream << " and";
-        }
-      }
-    }
-  }
-
-private:
-  std::ostream &stream;
-  AssertionResult const &result;
-  std::vector<MessageInfo> messages;
-  std::vector<MessageInfo>::const_iterator itMessage;
-  bool printInfoMessages;
-};
-
-} // namespace
-
-std::string CompactReporter::getDescription() {
-  return "Reports test results on a single line, suitable for IDEs";
-}
-
-ReporterPreferences CompactReporter::getPreferences() const {
-  ReporterPreferences prefs;
-  prefs.shouldRedirectStdOut = false;
-  return prefs;
-}
-
-void CompactReporter::noMatchingTestCases(std::string const &spec) {
-  stream << "No test cases matched '" << spec << '\'' << std::endl;
-}
-
-void CompactReporter::assertionStarting(AssertionInfo const &) {
-}
-
-bool CompactReporter::assertionEnded(AssertionStats const &_assertionStats) {
-  AssertionResult const &result = _assertionStats.assertionResult;
-
-  bool printInfoMessages = true;
-
-  // Drop out if result was successful and we're not printing those
-  if (!m_config->includeSuccessfulResults() && result.isOk()) {
-    if (result.getResultType() != ResultWas::Warning)
-      return false;
-    printInfoMessages = false;
-  }
-
-  AssertionPrinter printer(stream, _assertionStats, printInfoMessages);
-  printer.print();
-
-  stream << std::endl;
-  return true;
-}
-
-void CompactReporter::sectionEnded(SectionStats const &_sectionStats) {
-  if (m_config->showDurations() == ShowDurations::Always) {
-    stream << getFormattedDuration(_sectionStats.durationInSeconds) << " s: " << _sectionStats.sectionInfo.name
-           << std::endl;
-  }
-}
-
-void CompactReporter::testRunEnded(TestRunStats const &_testRunStats) {
-  printTotals(stream, _testRunStats.totals);
-  stream << '\n' << std::endl;
-  StreamingReporterBase::testRunEnded(_testRunStats);
-}
-
-CompactReporter::~CompactReporter() {
-}
-
-CATCH_REGISTER_REPORTER("compact", CompactReporter)
-
-} // end namespace Catch
-// end catch_reporter_compact.cpp
-// start catch_reporter_console.cpp
-
-#include <cfloat>
-#include <cstdio>
-
-#if defined(_MSC_VER)
-#pragma warning(push)
-#pragma warning(                                                                                                       \
-    disable : 4061) // Not all labels are EXPLICITLY handled in switch                                     \
-                                // Note that 4062 (not all labels are handled                                          \
-                                // and default is missing) is enabled
-#endif
-
-namespace Catch {
-
-namespace {
-
-// Formatter impl for ConsoleReporter
-class ConsoleAssertionPrinter {
-public:
-  ConsoleAssertionPrinter &operator=(ConsoleAssertionPrinter const &) = delete;
-  ConsoleAssertionPrinter(ConsoleAssertionPrinter const &)            = delete;
-  ConsoleAssertionPrinter(std::ostream &_stream, AssertionStats const &_stats, bool _printInfoMessages)
-      : stream(_stream), stats(_stats), result(_stats.assertionResult), colour(Colour::None),
-        message(result.getMessage()), messages(_stats.infoMessages), printInfoMessages(_printInfoMessages) {
-    switch (result.getResultType()) {
-    case ResultWas::Ok:
-      colour     = Colour::Success;
-      passOrFail = "PASSED";
-      //if( result.hasMessage() )
-      if (_stats.infoMessages.size() == 1)
-        messageLabel = "with message";
-      if (_stats.infoMessages.size() > 1)
-        messageLabel = "with messages";
-      break;
-    case ResultWas::ExpressionFailed:
-      if (result.isOk()) {
-        colour     = Colour::Success;
-        passOrFail = "FAILED - but was ok";
-      } else {
-        colour     = Colour::Error;
-        passOrFail = "FAILED";
-      }
-      if (_stats.infoMessages.size() == 1)
-        messageLabel = "with message";
-      if (_stats.infoMessages.size() > 1)
-        messageLabel = "with messages";
-      break;
-    case ResultWas::ThrewException:
-      colour       = Colour::Error;
-      passOrFail   = "FAILED";
-      messageLabel = "due to unexpected exception with ";
-      if (_stats.infoMessages.size() == 1)
-        messageLabel += "message";
-      if (_stats.infoMessages.size() > 1)
-        messageLabel += "messages";
-      break;
-    case ResultWas::FatalErrorCondition:
-      colour       = Colour::Error;
-      passOrFail   = "FAILED";
-      messageLabel = "due to a fatal error condition";
-      break;
-    case ResultWas::DidntThrowException:
-      colour       = Colour::Error;
-      passOrFail   = "FAILED";
-      messageLabel = "because no exception was thrown where one was expected";
-      break;
-    case ResultWas::Info:
-      messageLabel = "info";
-      break;
-    case ResultWas::Warning:
-      messageLabel = "warning";
-      break;
-    case ResultWas::ExplicitFailure:
-      passOrFail = "FAILED";
-      colour     = Colour::Error;
-      if (_stats.infoMessages.size() == 1)
-        messageLabel = "explicitly with message";
-      if (_stats.infoMessages.size() > 1)
-        messageLabel = "explicitly with messages";
-      break;
-    // These cases are here to prevent compiler warnings
-    case ResultWas::Unknown:
-    case ResultWas::FailureBit:
-    case ResultWas::Exception:
-      passOrFail = "** internal error **";
-      colour     = Colour::Error;
-      break;
-    }
-  }
-
-  void print() const {
-    printSourceInfo();
-    if (stats.totals.assertions.total() > 0) {
-      if (result.isOk())
-        stream << '\n';
-      printResultType();
-      printOriginalExpression();
-      printReconstructedExpression();
-    } else {
-      stream << '\n';
-    }
-    printMessage();
-  }
-
-private:
-  void printResultType() const {
-    if (!passOrFail.empty()) {
-      Colour colourGuard(colour);
-      stream << passOrFail << ":\n";
-    }
-  }
-  void printOriginalExpression() const {
-    if (result.hasExpression()) {
-      Colour colourGuard(Colour::OriginalExpression);
-      stream << "  ";
-      stream << result.getExpressionInMacro();
-      stream << '\n';
-    }
-  }
-  void printReconstructedExpression() const {
-    if (result.hasExpandedExpression()) {
-      stream << "with expansion:\n";
-      Colour colourGuard(Colour::ReconstructedExpression);
-      stream << Column(result.getExpandedExpression()).indent(2) << '\n';
-    }
-  }
-  void printMessage() const {
-    if (!messageLabel.empty())
-      stream << messageLabel << ':' << '\n';
-    for (auto const &msg : messages) {
-      // If this assertion is a warning ignore any INFO messages
-      if (printInfoMessages || msg.type != ResultWas::Info)
-        stream << Column(msg.message).indent(2) << '\n';
-    }
-  }
-  void printSourceInfo() const {
-    Colour colourGuard(Colour::FileName);
-    stream << result.getSourceInfo() << ": ";
-  }
-
-  std::ostream &stream;
-  AssertionStats const &stats;
-  AssertionResult const &result;
-  Colour::Code colour;
-  std::string passOrFail;
-  std::string messageLabel;
-  std::string message;
-  std::vector<MessageInfo> messages;
-  bool printInfoMessages;
-};
-
-std::size_t makeRatio(std::size_t number, std::size_t total) {
-  std::size_t ratio = total > 0 ? CATCH_CONFIG_CONSOLE_WIDTH * number / total : 0;
-  return (ratio == 0 && number > 0) ? 1 : ratio;
-}
-
-std::size_t &findMax(std::size_t &i, std::size_t &j, std::size_t &k) {
-  if (i > j && i > k)
-    return i;
-  else if (j > k)
-    return j;
-  else
-    return k;
-}
-
-struct ColumnInfo {
-  enum Justification { Left, Right };
-  std::string name;
-  int width;
-  Justification justification;
-};
-struct ColumnBreak {};
-struct RowBreak {};
-
-class Duration {
-  enum class Unit { Auto, Nanoseconds, Microseconds, Milliseconds, Seconds, Minutes };
-  static const uint64_t s_nanosecondsInAMicrosecond = 1000;
-  static const uint64_t s_nanosecondsInAMillisecond = 1000 * s_nanosecondsInAMicrosecond;
-  static const uint64_t s_nanosecondsInASecond      = 1000 * s_nanosecondsInAMillisecond;
-  static const uint64_t s_nanosecondsInAMinute      = 60 * s_nanosecondsInASecond;
-
-  uint64_t m_inNanoseconds;
-  Unit m_units;
-
-public:
-  explicit Duration(uint64_t inNanoseconds, Unit units = Unit::Auto) : m_inNanoseconds(inNanoseconds), m_units(units) {
-    if (m_units == Unit::Auto) {
-      if (m_inNanoseconds < s_nanosecondsInAMicrosecond)
-        m_units = Unit::Nanoseconds;
-      else if (m_inNanoseconds < s_nanosecondsInAMillisecond)
-        m_units = Unit::Microseconds;
-      else if (m_inNanoseconds < s_nanosecondsInASecond)
-        m_units = Unit::Milliseconds;
-      else if (m_inNanoseconds < s_nanosecondsInAMinute)
-        m_units = Unit::Seconds;
-      else
-        m_units = Unit::Minutes;
-    }
-  }
-
-  auto value() const -> double {
-    switch (m_units) {
-    case Unit::Microseconds:
-      return m_inNanoseconds / static_cast<double>(s_nanosecondsInAMicrosecond);
-    case Unit::Milliseconds:
-      return m_inNanoseconds / static_cast<double>(s_nanosecondsInAMillisecond);
-    case Unit::Seconds:
-      return m_inNanoseconds / static_cast<double>(s_nanosecondsInASecond);
-    case Unit::Minutes:
-      return m_inNanoseconds / static_cast<double>(s_nanosecondsInAMinute);
-    default:
-      return static_cast<double>(m_inNanoseconds);
-    }
-  }
-  auto unitsAsString() const -> std::string {
-    switch (m_units) {
-    case Unit::Nanoseconds:
-      return "ns";
-    case Unit::Microseconds:
-      return "µs";
-    case Unit::Milliseconds:
-      return "ms";
-    case Unit::Seconds:
-      return "s";
-    case Unit::Minutes:
-      return "m";
-    default:
-      return "** internal error **";
-    }
-  }
-  friend auto operator<<(std::ostream &os, Duration const &duration) -> std::ostream & {
-    return os << duration.value() << " " << duration.unitsAsString();
-  }
-};
-} // namespace
-
-class TablePrinter {
-  std::ostream &m_os;
-  std::vector<ColumnInfo> m_columnInfos;
-  std::ostringstream m_oss;
-  int m_currentColumn = -1;
-  bool m_isOpen       = false;
-
-public:
-  TablePrinter(std::ostream &os, std::vector<ColumnInfo> columnInfos)
-      : m_os(os), m_columnInfos(std::move(columnInfos)) {
-  }
-
-  auto columnInfos() const -> std::vector<ColumnInfo> const & {
-    return m_columnInfos;
-  }
-
-  void open() {
-    if (!m_isOpen) {
-      m_isOpen = true;
-      *this << RowBreak();
-      for (auto const &info : m_columnInfos)
-        *this << info.name << ColumnBreak();
-      *this << RowBreak();
-      m_os << Catch::getLineOfChars<'-'>() << "\n";
-    }
-  }
-  void close() {
-    if (m_isOpen) {
-      *this << RowBreak();
-      m_os << std::endl;
-      m_isOpen = false;
-    }
-  }
-
-  template <typename T> friend TablePrinter &operator<<(TablePrinter &tp, T const &value) {
-    tp.m_oss << value;
-    return tp;
-  }
-
-  friend TablePrinter &operator<<(TablePrinter &tp, ColumnBreak) {
-    auto colStr = tp.m_oss.str();
-    // This takes account of utf8 encodings
-    auto strSize = Catch::StringRef(colStr).numberOfCharacters();
-    tp.m_oss.str("");
-    tp.open();
-    if (tp.m_currentColumn == static_cast<int>(tp.m_columnInfos.size() - 1)) {
-      tp.m_currentColumn = -1;
-      tp.m_os << "\n";
-    }
-    tp.m_currentColumn++;
-
-    auto colInfo = tp.m_columnInfos[tp.m_currentColumn];
-    auto padding = (strSize + 2 < static_cast<std::size_t>(colInfo.width))
-                       ? std::string(colInfo.width - (strSize + 2), ' ')
-                       : std::string();
-    if (colInfo.justification == ColumnInfo::Left)
-      tp.m_os << colStr << padding << " ";
-    else
-      tp.m_os << padding << colStr << " ";
-    return tp;
-  }
-
-  friend TablePrinter &operator<<(TablePrinter &tp, RowBreak) {
-    if (tp.m_currentColumn > 0) {
-      tp.m_os << "\n";
-      tp.m_currentColumn = -1;
-    }
-    return tp;
-  }
-};
-
-ConsoleReporter::ConsoleReporter(ReporterConfig const &config)
-    : StreamingReporterBase(config),
-      m_tablePrinter(
-          new TablePrinter(config.stream(), {{"benchmark name", CATCH_CONFIG_CONSOLE_WIDTH - 32, ColumnInfo::Left},
-                                             {"iters", 8, ColumnInfo::Right},
-                                             {"elapsed ns", 14, ColumnInfo::Right},
-                                             {"average", 14, ColumnInfo::Right}})) {
-}
-ConsoleReporter::~ConsoleReporter() = default;
-
-std::string ConsoleReporter::getDescription() {
-  return "Reports test results as plain lines of text";
-}
-
-void ConsoleReporter::noMatchingTestCases(std::string const &spec) {
-  stream << "No test cases matched '" << spec << '\'' << std::endl;
-}
-
-void ConsoleReporter::assertionStarting(AssertionInfo const &) {
-}
-
-bool ConsoleReporter::assertionEnded(AssertionStats const &_assertionStats) {
-  AssertionResult const &result = _assertionStats.assertionResult;
-
-  bool includeResults = m_config->includeSuccessfulResults() || !result.isOk();
-
-  // Drop out if result was successful but we're not printing them.
-  if (!includeResults && result.getResultType() != ResultWas::Warning)
-    return false;
-
-  lazyPrint();
-
-  ConsoleAssertionPrinter printer(stream, _assertionStats, includeResults);
-  printer.print();
-  stream << std::endl;
-  return true;
-}
-
-void ConsoleReporter::sectionStarting(SectionInfo const &_sectionInfo) {
-  m_headerPrinted = false;
-  StreamingReporterBase::sectionStarting(_sectionInfo);
-}
-void ConsoleReporter::sectionEnded(SectionStats const &_sectionStats) {
-  m_tablePrinter->close();
-  if (_sectionStats.missingAssertions) {
-    lazyPrint();
-    Colour colour(Colour::ResultError);
-    if (m_sectionStack.size() > 1)
-      stream << "\nNo assertions in section";
-    else
-      stream << "\nNo assertions in test case";
-    stream << " '" << _sectionStats.sectionInfo.name << "'\n" << std::endl;
-  }
-  if (m_config->showDurations() == ShowDurations::Always) {
-    stream << getFormattedDuration(_sectionStats.durationInSeconds) << " s: " << _sectionStats.sectionInfo.name
-           << std::endl;
-  }
-  if (m_headerPrinted) {
-    m_headerPrinted = false;
-  }
-  StreamingReporterBase::sectionEnded(_sectionStats);
-}
-
-void ConsoleReporter::benchmarkStarting(BenchmarkInfo const &info) {
-  lazyPrintWithoutClosingBenchmarkTable();
-
-  auto nameCol = Column(info.name).width(static_cast<std::size_t>(m_tablePrinter->columnInfos()[0].width - 2));
-
-  bool firstLine = true;
-  for (auto line : nameCol) {
-    if (!firstLine)
-      (*m_tablePrinter) << ColumnBreak() << ColumnBreak() << ColumnBreak();
-    else
-      firstLine = false;
-
-    (*m_tablePrinter) << line << ColumnBreak();
-  }
-}
-void ConsoleReporter::benchmarkEnded(BenchmarkStats const &stats) {
-  Duration average(stats.elapsedTimeInNanoseconds / stats.iterations);
-  (*m_tablePrinter) << stats.iterations << ColumnBreak() << stats.elapsedTimeInNanoseconds << ColumnBreak() << average
-                    << ColumnBreak();
-}
-
-void ConsoleReporter::testCaseEnded(TestCaseStats const &_testCaseStats) {
-  m_tablePrinter->close();
-  StreamingReporterBase::testCaseEnded(_testCaseStats);
-  m_headerPrinted = false;
-}
-void ConsoleReporter::testGroupEnded(TestGroupStats const &_testGroupStats) {
-  if (currentGroupInfo.used) {
-    printSummaryDivider();
-    stream << "Summary for group '" << _testGroupStats.groupInfo.name << "':\n";
-    printTotals(_testGroupStats.totals);
-    stream << '\n' << std::endl;
-  }
-  StreamingReporterBase::testGroupEnded(_testGroupStats);
-}
-void ConsoleReporter::testRunEnded(TestRunStats const &_testRunStats) {
-  printTotalsDivider(_testRunStats.totals);
-  printTotals(_testRunStats.totals);
-  stream << std::endl;
-  StreamingReporterBase::testRunEnded(_testRunStats);
-}
-
-void ConsoleReporter::lazyPrint() {
-
-  m_tablePrinter->close();
-  lazyPrintWithoutClosingBenchmarkTable();
-}
-
-void ConsoleReporter::lazyPrintWithoutClosingBenchmarkTable() {
-
-  if (!currentTestRunInfo.used)
-    lazyPrintRunInfo();
-  if (!currentGroupInfo.used)
-    lazyPrintGroupInfo();
-
-  if (!m_headerPrinted) {
-    printTestCaseAndSectionHeader();
-    m_headerPrinted = true;
-  }
-}
-void ConsoleReporter::lazyPrintRunInfo() {
-  stream << '\n' << getLineOfChars<'~'>() << '\n';
-  Colour colour(Colour::SecondaryText);
-  stream << currentTestRunInfo->name << " is a Catch v" << libraryVersion() << " host application.\n"
-         << "Run with -? for options\n\n";
-
-  if (m_config->rngSeed() != 0)
-    stream << "Randomness seeded to: " << m_config->rngSeed() << "\n\n";
-
-  currentTestRunInfo.used = true;
-}
-void ConsoleReporter::lazyPrintGroupInfo() {
-  if (!currentGroupInfo->name.empty() && currentGroupInfo->groupsCounts > 1) {
-    printClosedHeader("Group: " + currentGroupInfo->name);
-    currentGroupInfo.used = true;
-  }
-}
-void ConsoleReporter::printTestCaseAndSectionHeader() {
-  assert(!m_sectionStack.empty());
-  printOpenHeader(currentTestCaseInfo->name);
-
-  if (m_sectionStack.size() > 1) {
-    Colour colourGuard(Colour::Headers);
-
-    auto it   = m_sectionStack.begin() + 1, // Skip first section (test case)
-        itEnd = m_sectionStack.end();
-    for (; it != itEnd; ++it)
-      printHeaderString(it->name, 2);
-  }
-
-  SourceLineInfo lineInfo = m_sectionStack.back().lineInfo;
-
-  if (!lineInfo.empty()) {
-    stream << getLineOfChars<'-'>() << '\n';
-    Colour colourGuard(Colour::FileName);
-    stream << lineInfo << '\n';
-  }
-  stream << getLineOfChars<'.'>() << '\n' << std::endl;
-}
-
-void ConsoleReporter::printClosedHeader(std::string const &_name) {
-  printOpenHeader(_name);
-  stream << getLineOfChars<'.'>() << '\n';
-}
-void ConsoleReporter::printOpenHeader(std::string const &_name) {
-  stream << getLineOfChars<'-'>() << '\n';
-  {
-    Colour colourGuard(Colour::Headers);
-    printHeaderString(_name);
-  }
-}
-
-// if string has a : in first line will set indent to follow it on
-// subsequent lines
-void ConsoleReporter::printHeaderString(std::string const &_string, std::size_t indent) {
-  std::size_t i = _string.find(": ");
-  if (i != std::string::npos)
-    i += 2;
-  else
-    i = 0;
-  stream << Column(_string).indent(indent + i).initialIndent(indent) << '\n';
-}
-
-struct SummaryColumn {
-
-  SummaryColumn(std::string _label, Colour::Code _colour) : label(std::move(_label)), colour(_colour) {
-  }
-  SummaryColumn addRow(std::size_t count) {
-    ReusableStringStream rss;
-    rss << count;
-    std::string row = rss.str();
-    for (auto &oldRow : rows) {
-      while (oldRow.size() < row.size())
-        oldRow = ' ' + oldRow;
-      while (oldRow.size() > row.size())
-        row = ' ' + row;
-    }
-    rows.push_back(row);
-    return *this;
-  }
-
-  std::string label;
-  Colour::Code colour;
-  std::vector<std::string> rows;
-};
-
-void ConsoleReporter::printTotals(Totals const &totals) {
-  if (totals.testCases.total() == 0) {
-    stream << Colour(Colour::Warning) << "No tests ran\n";
-  } else if (totals.assertions.total() > 0 && totals.testCases.allPassed()) {
-    stream << Colour(Colour::ResultSuccess) << "All tests passed";
-    stream << " (" << pluralise(totals.assertions.passed, "assertion") << " in "
-           << pluralise(totals.testCases.passed, "test case") << ')' << '\n';
-  } else {
-
-    std::vector<SummaryColumn> columns;
-    columns.push_back(
-        SummaryColumn("", Colour::None).addRow(totals.testCases.total()).addRow(totals.assertions.total()));
-    columns.push_back(
-        SummaryColumn("passed", Colour::Success).addRow(totals.testCases.passed).addRow(totals.assertions.passed));
-    columns.push_back(
-        SummaryColumn("failed", Colour::ResultError).addRow(totals.testCases.failed).addRow(totals.assertions.failed));
-    columns.push_back(SummaryColumn("failed as expected", Colour::ResultExpectedFailure)
-                          .addRow(totals.testCases.failedButOk)
-                          .addRow(totals.assertions.failedButOk));
-
-    printSummaryRow("test cases", columns, 0);
-    printSummaryRow("assertions", columns, 1);
-  }
-}
-void ConsoleReporter::printSummaryRow(std::string const &label, std::vector<SummaryColumn> const &cols,
-                                      std::size_t row) {
-  for (auto col : cols) {
-    std::string value = col.rows[row];
-    if (col.label.empty()) {
-      stream << label << ": ";
-      if (value != "0")
-        stream << value;
-      else
-        stream << Colour(Colour::Warning) << "- none -";
-    } else if (value != "0") {
-      stream << Colour(Colour::LightGrey) << " | ";
-      stream << Colour(col.colour) << value << ' ' << col.label;
-    }
-  }
-  stream << '\n';
-}
-
-void ConsoleReporter::printTotalsDivider(Totals const &totals) {
-  if (totals.testCases.total() > 0) {
-    std::size_t failedRatio      = makeRatio(totals.testCases.failed, totals.testCases.total());
-    std::size_t failedButOkRatio = makeRatio(totals.testCases.failedButOk, totals.testCases.total());
-    std::size_t passedRatio      = makeRatio(totals.testCases.passed, totals.testCases.total());
-    while (failedRatio + failedButOkRatio + passedRatio < CATCH_CONFIG_CONSOLE_WIDTH - 1)
-      findMax(failedRatio, failedButOkRatio, passedRatio)++;
-    while (failedRatio + failedButOkRatio + passedRatio > CATCH_CONFIG_CONSOLE_WIDTH - 1)
-      findMax(failedRatio, failedButOkRatio, passedRatio)--;
-
-    stream << Colour(Colour::Error) << std::string(failedRatio, '=');
-    stream << Colour(Colour::ResultExpectedFailure) << std::string(failedButOkRatio, '=');
-    if (totals.testCases.allPassed())
-      stream << Colour(Colour::ResultSuccess) << std::string(passedRatio, '=');
-    else
-      stream << Colour(Colour::Success) << std::string(passedRatio, '=');
-  } else {
-    stream << Colour(Colour::Warning) << std::string(CATCH_CONFIG_CONSOLE_WIDTH - 1, '=');
-  }
-  stream << '\n';
-}
-void ConsoleReporter::printSummaryDivider() {
-  stream << getLineOfChars<'-'>() << '\n';
-}
-
-CATCH_REGISTER_REPORTER("console", ConsoleReporter)
-
-} // end namespace Catch
-
-#if defined(_MSC_VER)
-#pragma warning(pop)
-#endif
-// end catch_reporter_console.cpp
-// start catch_reporter_junit.cpp
-
-#include <algorithm>
-#include <cassert>
-#include <ctime>
-#include <sstream>
-
-namespace Catch {
-
-namespace {
-std::string getCurrentTimestamp() {
-  // Beware, this is not reentrant because of backward compatibility issues
-  // Also, UTC only, again because of backward compatibility (%z is C++11)
-  time_t rawtime;
-  std::time(&rawtime);
-  auto const timeStampSize = sizeof("2017-01-16T17:06:45Z");
-
-#ifdef _MSC_VER
-  std::tm timeInfo = {};
-  gmtime_s(&timeInfo, &rawtime);
-#else
-  std::tm *timeInfo;
-  timeInfo = std::gmtime(&rawtime);
-#endif
-
-  char timeStamp[timeStampSize];
-  const char *const fmt = "%Y-%m-%dT%H:%M:%SZ";
-
-#ifdef _MSC_VER
-  std::strftime(timeStamp, timeStampSize, fmt, &timeInfo);
-#else
-  std::strftime(timeStamp, timeStampSize, fmt, timeInfo);
-#endif
-  return std::string(timeStamp);
-}
-
-std::string fileNameTag(const std::vector<std::string> &tags) {
-  auto it = std::find_if(begin(tags), end(tags), [](std::string const &tag) { return tag.front() == '#'; });
-  if (it != tags.end())
-    return it->substr(1);
-  return std::string();
-}
-} // anonymous namespace
-
-JunitReporter::JunitReporter(ReporterConfig const &_config) : CumulativeReporterBase(_config), xml(_config.stream()) {
-  m_reporterPrefs.shouldRedirectStdOut = true;
-}
-
-JunitReporter::~JunitReporter() {
-}
-
-std::string JunitReporter::getDescription() {
-  return "Reports test results in an XML format that looks like Ant's junitreport target";
-}
-
-void JunitReporter::noMatchingTestCases(std::string const & /*spec*/) {
-}
-
-void JunitReporter::testRunStarting(TestRunInfo const &runInfo) {
-  CumulativeReporterBase::testRunStarting(runInfo);
-  xml.startElement("testsuites");
-}
-
-void JunitReporter::testGroupStarting(GroupInfo const &groupInfo) {
-  suiteTimer.start();
-  stdOutForSuite.clear();
-  stdErrForSuite.clear();
-  unexpectedExceptions = 0;
-  CumulativeReporterBase::testGroupStarting(groupInfo);
-}
-
-void JunitReporter::testCaseStarting(TestCaseInfo const &testCaseInfo) {
-  m_okToFail = testCaseInfo.okToFail();
-}
-
-bool JunitReporter::assertionEnded(AssertionStats const &assertionStats) {
-  if (assertionStats.assertionResult.getResultType() == ResultWas::ThrewException && !m_okToFail)
-    unexpectedExceptions++;
-  return CumulativeReporterBase::assertionEnded(assertionStats);
-}
-
-void JunitReporter::testCaseEnded(TestCaseStats const &testCaseStats) {
-  stdOutForSuite += testCaseStats.stdOut;
-  stdErrForSuite += testCaseStats.stdErr;
-  CumulativeReporterBase::testCaseEnded(testCaseStats);
-}
-
-void JunitReporter::testGroupEnded(TestGroupStats const &testGroupStats) {
-  double suiteTime = suiteTimer.getElapsedSeconds();
-  CumulativeReporterBase::testGroupEnded(testGroupStats);
-  writeGroup(*m_testGroups.back(), suiteTime);
-}
-
-void JunitReporter::testRunEndedCumulative() {
-  xml.endElement();
-}
-
-void JunitReporter::writeGroup(TestGroupNode const &groupNode, double suiteTime) {
-  XmlWriter::ScopedElement e  = xml.scopedElement("testsuite");
-  TestGroupStats const &stats = groupNode.value;
-  xml.writeAttribute("name", stats.groupInfo.name);
-  xml.writeAttribute("errors", unexpectedExceptions);
-  xml.writeAttribute("failures", stats.totals.assertions.failed - unexpectedExceptions);
-  xml.writeAttribute("tests", stats.totals.assertions.total());
-  xml.writeAttribute("hostname", "tbd"); // !TBD
-  if (m_config->showDurations() == ShowDurations::Never)
-    xml.writeAttribute("time", "");
-  else
-    xml.writeAttribute("time", suiteTime);
-  xml.writeAttribute("timestamp", getCurrentTimestamp());
-
-  // Write test cases
-  for (auto const &child : groupNode.children)
-    writeTestCase(*child);
-
-  xml.scopedElement("system-out").writeText(trim(stdOutForSuite), false);
-  xml.scopedElement("system-err").writeText(trim(stdErrForSuite), false);
-}
-
-void JunitReporter::writeTestCase(TestCaseNode const &testCaseNode) {
-  TestCaseStats const &stats = testCaseNode.value;
-
-  // All test cases have exactly one section - which represents the
-  // test case itself. That section may have 0-n nested sections
-  assert(testCaseNode.children.size() == 1);
-  SectionNode const &rootSection = *testCaseNode.children.front();
-
-  std::string className = stats.testInfo.className;
-
-  if (className.empty()) {
-    className = fileNameTag(stats.testInfo.tags);
-    if (className.empty())
-      className = "global";
-  }
-
-  if (!m_config->name().empty())
-    className = m_config->name() + "." + className;
-
-  writeSection(className, "", rootSection);
-}
-
-void JunitReporter::writeSection(std::string const &className, std::string const &rootName,
-                                 SectionNode const &sectionNode) {
-  std::string name = trim(sectionNode.stats.sectionInfo.name);
-  if (!rootName.empty())
-    name = rootName + '/' + name;
-
-  if (!sectionNode.assertions.empty() || !sectionNode.stdOut.empty() || !sectionNode.stdErr.empty()) {
-    XmlWriter::ScopedElement e = xml.scopedElement("testcase");
-    if (className.empty()) {
-      xml.writeAttribute("classname", name);
-      xml.writeAttribute("name", "root");
-    } else {
-      xml.writeAttribute("classname", className);
-      xml.writeAttribute("name", name);
-    }
-    xml.writeAttribute("time", ::Catch::Detail::stringify(sectionNode.stats.durationInSeconds));
-
-    writeAssertions(sectionNode);
-
-    if (!sectionNode.stdOut.empty())
-      xml.scopedElement("system-out").writeText(trim(sectionNode.stdOut), false);
-    if (!sectionNode.stdErr.empty())
-      xml.scopedElement("system-err").writeText(trim(sectionNode.stdErr), false);
-  }
-  for (auto const &childNode : sectionNode.childSections)
-    if (className.empty())
-      writeSection(name, "", *childNode);
-    else
-      writeSection(className, name, *childNode);
-}
-
-void JunitReporter::writeAssertions(SectionNode const &sectionNode) {
-  for (auto const &assertion : sectionNode.assertions)
-    writeAssertion(assertion);
-}
-
-void JunitReporter::writeAssertion(AssertionStats const &stats) {
-  AssertionResult const &result = stats.assertionResult;
-  if (!result.isOk()) {
-    std::string elementName;
-    switch (result.getResultType()) {
-    case ResultWas::ThrewException:
-    case ResultWas::FatalErrorCondition:
-      elementName = "error";
-      break;
-    case ResultWas::ExplicitFailure:
-      elementName = "failure";
-      break;
-    case ResultWas::ExpressionFailed:
-      elementName = "failure";
-      break;
-    case ResultWas::DidntThrowException:
-      elementName = "failure";
-      break;
-
-    // We should never see these here:
-    case ResultWas::Info:
-    case ResultWas::Warning:
-    case ResultWas::Ok:
-    case ResultWas::Unknown:
-    case ResultWas::FailureBit:
-    case ResultWas::Exception:
-      elementName = "internalError";
-      break;
-    }
-
-    XmlWriter::ScopedElement e = xml.scopedElement(elementName);
-
-    xml.writeAttribute("message", result.getExpandedExpression());
-    xml.writeAttribute("type", result.getTestMacroName());
-
-    ReusableStringStream rss;
-    if (!result.getMessage().empty())
-      rss << result.getMessage() << '\n';
-    for (auto const &msg : stats.infoMessages)
-      if (msg.type == ResultWas::Info)
-        rss << msg.message << '\n';
-
-    rss << "at " << result.getSourceInfo();
-    xml.writeText(rss.str(), false);
-  }
-}
-
-CATCH_REGISTER_REPORTER("junit", JunitReporter)
-
-} // end namespace Catch
-// end catch_reporter_junit.cpp
-// start catch_reporter_listening.cpp
-
-#include <cassert>
-
-namespace Catch {
-
-void ListeningReporter::addListener(IStreamingReporterPtr &&listener) {
-  m_listeners.push_back(std::move(listener));
-}
-
-void ListeningReporter::addReporter(IStreamingReporterPtr &&reporter) {
-  assert(!m_reporter && "Listening reporter can wrap only 1 real reporter");
-  m_reporter = std::move(reporter);
-}
-
-ReporterPreferences ListeningReporter::getPreferences() const {
-  return m_reporter->getPreferences();
-}
-
-std::set<Verbosity> ListeningReporter::getSupportedVerbosities() {
-  return std::set<Verbosity>{};
-}
-
-void ListeningReporter::noMatchingTestCases(std::string const &spec) {
-  for (auto const &listener : m_listeners) {
-    listener->noMatchingTestCases(spec);
-  }
-  m_reporter->noMatchingTestCases(spec);
-}
-
-void ListeningReporter::benchmarkStarting(BenchmarkInfo const &benchmarkInfo) {
-  for (auto const &listener : m_listeners) {
-    listener->benchmarkStarting(benchmarkInfo);
-  }
-  m_reporter->benchmarkStarting(benchmarkInfo);
-}
-void ListeningReporter::benchmarkEnded(BenchmarkStats const &benchmarkStats) {
-  for (auto const &listener : m_listeners) {
-    listener->benchmarkEnded(benchmarkStats);
-  }
-  m_reporter->benchmarkEnded(benchmarkStats);
-}
-
-void ListeningReporter::testRunStarting(TestRunInfo const &testRunInfo) {
-  for (auto const &listener : m_listeners) {
-    listener->testRunStarting(testRunInfo);
-  }
-  m_reporter->testRunStarting(testRunInfo);
-}
-
-void ListeningReporter::testGroupStarting(GroupInfo const &groupInfo) {
-  for (auto const &listener : m_listeners) {
-    listener->testGroupStarting(groupInfo);
-  }
-  m_reporter->testGroupStarting(groupInfo);
-}
-
-void ListeningReporter::testCaseStarting(TestCaseInfo const &testInfo) {
-  for (auto const &listener : m_listeners) {
-    listener->testCaseStarting(testInfo);
-  }
-  m_reporter->testCaseStarting(testInfo);
-}
-
-void ListeningReporter::sectionStarting(SectionInfo const &sectionInfo) {
-  for (auto const &listener : m_listeners) {
-    listener->sectionStarting(sectionInfo);
-  }
-  m_reporter->sectionStarting(sectionInfo);
-}
-
-void ListeningReporter::assertionStarting(AssertionInfo const &assertionInfo) {
-  for (auto const &listener : m_listeners) {
-    listener->assertionStarting(assertionInfo);
-  }
-  m_reporter->assertionStarting(assertionInfo);
-}
-
-// The return value indicates if the messages buffer should be cleared:
-bool ListeningReporter::assertionEnded(AssertionStats const &assertionStats) {
-  for (auto const &listener : m_listeners) {
-    static_cast<void>(listener->assertionEnded(assertionStats));
-  }
-  return m_reporter->assertionEnded(assertionStats);
-}
-
-void ListeningReporter::sectionEnded(SectionStats const &sectionStats) {
-  for (auto const &listener : m_listeners) {
-    listener->sectionEnded(sectionStats);
-  }
-  m_reporter->sectionEnded(sectionStats);
-}
-
-void ListeningReporter::testCaseEnded(TestCaseStats const &testCaseStats) {
-  for (auto const &listener : m_listeners) {
-    listener->testCaseEnded(testCaseStats);
-  }
-  m_reporter->testCaseEnded(testCaseStats);
-}
-
-void ListeningReporter::testGroupEnded(TestGroupStats const &testGroupStats) {
-  for (auto const &listener : m_listeners) {
-    listener->testGroupEnded(testGroupStats);
-  }
-  m_reporter->testGroupEnded(testGroupStats);
-}
-
-void ListeningReporter::testRunEnded(TestRunStats const &testRunStats) {
-  for (auto const &listener : m_listeners) {
-    listener->testRunEnded(testRunStats);
-  }
-  m_reporter->testRunEnded(testRunStats);
-}
-
-void ListeningReporter::skipTest(TestCaseInfo const &testInfo) {
-  for (auto const &listener : m_listeners) {
-    listener->skipTest(testInfo);
-  }
-  m_reporter->skipTest(testInfo);
-}
-
-bool ListeningReporter::isMulti() const {
-  return true;
-}
-
-} // end namespace Catch
-// end catch_reporter_listening.cpp
-// start catch_reporter_xml.cpp
-
-#if defined(_MSC_VER)
-#pragma warning(push)
-#pragma warning(                                                                                                       \
-    disable : 4061) // Not all labels are EXPLICITLY handled in switch                                     \
-                                // Note that 4062 (not all labels are handled                                          \
-                                // and default is missing) is enabled
-#endif
-
-namespace Catch {
-XmlReporter::XmlReporter(ReporterConfig const &_config) : StreamingReporterBase(_config), m_xml(_config.stream()) {
-  m_reporterPrefs.shouldRedirectStdOut = true;
-}
-
-XmlReporter::~XmlReporter() = default;
-
-std::string XmlReporter::getDescription() {
-  return "Reports test results as an XML document";
-}
-
-std::string XmlReporter::getStylesheetRef() const {
-  return std::string();
-}
-
-void XmlReporter::writeSourceInfo(SourceLineInfo const &sourceInfo) {
-  m_xml.writeAttribute("filename", sourceInfo.file).writeAttribute("line", sourceInfo.line);
-}
-
-void XmlReporter::noMatchingTestCases(std::string const &s) {
-  StreamingReporterBase::noMatchingTestCases(s);
-}
-
-void XmlReporter::testRunStarting(TestRunInfo const &testInfo) {
-  StreamingReporterBase::testRunStarting(testInfo);
-  std::string stylesheetRef = getStylesheetRef();
-  if (!stylesheetRef.empty())
-    m_xml.writeStylesheetRef(stylesheetRef);
-  m_xml.startElement("Catch");
-  if (!m_config->name().empty())
-    m_xml.writeAttribute("name", m_config->name());
-}
-
-void XmlReporter::testGroupStarting(GroupInfo const &groupInfo) {
-  StreamingReporterBase::testGroupStarting(groupInfo);
-  m_xml.startElement("Group").writeAttribute("name", groupInfo.name);
-}
-
-void XmlReporter::testCaseStarting(TestCaseInfo const &testInfo) {
-  StreamingReporterBase::testCaseStarting(testInfo);
-  m_xml.startElement("TestCase")
-      .writeAttribute("name", trim(testInfo.name))
-      .writeAttribute("description", testInfo.description)
-      .writeAttribute("tags", testInfo.tagsAsString());
-
-  writeSourceInfo(testInfo.lineInfo);
-
-  if (m_config->showDurations() == ShowDurations::Always)
-    m_testCaseTimer.start();
-  m_xml.ensureTagClosed();
-}
-
-void XmlReporter::sectionStarting(SectionInfo const &sectionInfo) {
-  StreamingReporterBase::sectionStarting(sectionInfo);
-  if (m_sectionDepth++ > 0) {
-    m_xml.startElement("Section")
-        .writeAttribute("name", trim(sectionInfo.name))
-        .writeAttribute("description", sectionInfo.description);
-    writeSourceInfo(sectionInfo.lineInfo);
-    m_xml.ensureTagClosed();
-  }
-}
-
-void XmlReporter::assertionStarting(AssertionInfo const &) {
-}
-
-bool XmlReporter::assertionEnded(AssertionStats const &assertionStats) {
-
-  AssertionResult const &result = assertionStats.assertionResult;
-
-  bool includeResults = m_config->includeSuccessfulResults() || !result.isOk();
-
-  if (includeResults || result.getResultType() == ResultWas::Warning) {
-    // Print any info messages in <Info> tags.
-    for (auto const &msg : assertionStats.infoMessages) {
-      if (msg.type == ResultWas::Info && includeResults) {
-        m_xml.scopedElement("Info").writeText(msg.message);
-      } else if (msg.type == ResultWas::Warning) {
-        m_xml.scopedElement("Warning").writeText(msg.message);
-      }
-    }
-  }
-
-  // Drop out if result was successful but we're not printing them.
-  if (!includeResults && result.getResultType() != ResultWas::Warning)
-    return true;
-
-  // Print the expression if there is one.
-  if (result.hasExpression()) {
-    m_xml.startElement("Expression")
-        .writeAttribute("success", result.succeeded())
-        .writeAttribute("type", result.getTestMacroName());
-
-    writeSourceInfo(result.getSourceInfo());
-
-    m_xml.scopedElement("Original").writeText(result.getExpression());
-    m_xml.scopedElement("Expanded").writeText(result.getExpandedExpression());
-  }
-
-  // And... Print a result applicable to each result type.
-  switch (result.getResultType()) {
-  case ResultWas::ThrewException:
-    m_xml.startElement("Exception");
-    writeSourceInfo(result.getSourceInfo());
-    m_xml.writeText(result.getMessage());
-    m_xml.endElement();
-    break;
-  case ResultWas::FatalErrorCondition:
-    m_xml.startElement("FatalErrorCondition");
-    writeSourceInfo(result.getSourceInfo());
-    m_xml.writeText(result.getMessage());
-    m_xml.endElement();
-    break;
-  case ResultWas::Info:
-    m_xml.scopedElement("Info").writeText(result.getMessage());
-    break;
-  case ResultWas::Warning:
-    // Warning will already have been written
-    break;
-  case ResultWas::ExplicitFailure:
-    m_xml.startElement("Failure");
-    writeSourceInfo(result.getSourceInfo());
-    m_xml.writeText(result.getMessage());
-    m_xml.endElement();
-    break;
-  default:
-    break;
-  }
-
-  if (result.hasExpression())
-    m_xml.endElement();
-
-  return true;
-}
-
-void XmlReporter::sectionEnded(SectionStats const &sectionStats) {
-  StreamingReporterBase::sectionEnded(sectionStats);
-  if (--m_sectionDepth > 0) {
-    XmlWriter::ScopedElement e = m_xml.scopedElement("OverallResults");
-    e.writeAttribute("successes", sectionStats.assertions.passed);
-    e.writeAttribute("failures", sectionStats.assertions.failed);
-    e.writeAttribute("expectedFailures", sectionStats.assertions.failedButOk);
-
-    if (m_config->showDurations() == ShowDurations::Always)
-      e.writeAttribute("durationInSeconds", sectionStats.durationInSeconds);
-
-    m_xml.endElement();
-  }
-}
-
-void XmlReporter::testCaseEnded(TestCaseStats const &testCaseStats) {
-  StreamingReporterBase::testCaseEnded(testCaseStats);
-  XmlWriter::ScopedElement e = m_xml.scopedElement("OverallResult");
-  e.writeAttribute("success", testCaseStats.totals.assertions.allOk());
-
-  if (m_config->showDurations() == ShowDurations::Always)
-    e.writeAttribute("durationInSeconds", m_testCaseTimer.getElapsedSeconds());
-
-  if (!testCaseStats.stdOut.empty())
-    m_xml.scopedElement("StdOut").writeText(trim(testCaseStats.stdOut), false);
-  if (!testCaseStats.stdErr.empty())
-    m_xml.scopedElement("StdErr").writeText(trim(testCaseStats.stdErr), false);
-
-  m_xml.endElement();
-}
-
-void XmlReporter::testGroupEnded(TestGroupStats const &testGroupStats) {
-  StreamingReporterBase::testGroupEnded(testGroupStats);
-  // TODO: Check testGroupStats.aborting and act accordingly.
-  m_xml.scopedElement("OverallResults")
-      .writeAttribute("successes", testGroupStats.totals.assertions.passed)
-      .writeAttribute("failures", testGroupStats.totals.assertions.failed)
-      .writeAttribute("expectedFailures", testGroupStats.totals.assertions.failedButOk);
-  m_xml.endElement();
-}
-
-void XmlReporter::testRunEnded(TestRunStats const &testRunStats) {
-  StreamingReporterBase::testRunEnded(testRunStats);
-  m_xml.scopedElement("OverallResults")
-      .writeAttribute("successes", testRunStats.totals.assertions.passed)
-      .writeAttribute("failures", testRunStats.totals.assertions.failed)
-      .writeAttribute("expectedFailures", testRunStats.totals.assertions.failedButOk);
-  m_xml.endElement();
-}
-
-CATCH_REGISTER_REPORTER("xml", XmlReporter)
-
-} // end namespace Catch
-
-#if defined(_MSC_VER)
-#pragma warning(pop)
-#endif
-// end catch_reporter_xml.cpp
-
-namespace Catch {
-LeakDetector leakDetector;
-}
-
-#ifdef __clang__
-#pragma clang diagnostic pop
-#endif
-
-// end catch_impl.hpp
-#endif
-
-#ifdef CATCH_CONFIG_MAIN
-// start catch_default_main.hpp
-
-#ifndef __OBJC__
-
-#if defined(CATCH_CONFIG_WCHAR) && defined(WIN32) && defined(_UNICODE) && !defined(DO_NOT_USE_WMAIN)
-// Standard C/C++ Win32 Unicode wmain entry point
-extern "C" int wmain(int argc, wchar_t *argv[], wchar_t *[]) {
-#else
-// Standard C/C++ main entry point
-int main(int argc, char *argv[]) {
-#endif
-
-  return Catch::Session().run(argc, argv);
-}
-
-#else // __OBJC__
-
-// Objective-C entry point
-int main(int argc, char *const argv[]) {
-#if !CATCH_ARC_ENABLED
-  NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
-#endif
-
-  Catch::registerTestMethods();
-  int result = Catch::Session().run(argc, (char **)argv);
-
-#if !CATCH_ARC_ENABLED
-  [pool drain];
-#endif
-
-  return result;
-}
-
-#endif // __OBJC__
-
-// end catch_default_main.hpp
-#endif
-
-#if !defined(CATCH_CONFIG_IMPL_ONLY)
-
-#ifdef CLARA_CONFIG_MAIN_NOT_DEFINED
-#undef CLARA_CONFIG_MAIN
-#endif
-
-#if !defined(CATCH_CONFIG_DISABLE)
-//////
-// If this config identifier is defined then all CATCH macros are prefixed with CATCH_
-#ifdef CATCH_CONFIG_PREFIX_ALL
-
-#define CATCH_REQUIRE(...) INTERNAL_CATCH_TEST("CATCH_REQUIRE", Catch::ResultDisposition::Normal, __VA_ARGS__)
-#define CATCH_REQUIRE_FALSE(...)                                                                                       \
-  INTERNAL_CATCH_TEST("CATCH_REQUIRE_FALSE", Catch::ResultDisposition::Normal | Catch::ResultDisposition::FalseTest,   \
-                      __VA_ARGS__)
-
-#define CATCH_REQUIRE_THROWS(...)                                                                                      \
-  INTERNAL_CATCH_THROWS("CATCH_REQUIRE_THROWS", Catch::ResultDisposition::Normal, "", __VA_ARGS__)
-#define CATCH_REQUIRE_THROWS_AS(expr, exceptionType)                                                                   \
-  INTERNAL_CATCH_THROWS_AS("CATCH_REQUIRE_THROWS_AS", exceptionType, Catch::ResultDisposition::Normal, expr)
-#define CATCH_REQUIRE_THROWS_WITH(expr, matcher)                                                                       \
-  INTERNAL_CATCH_THROWS_STR_MATCHES("CATCH_REQUIRE_THROWS_WITH", Catch::ResultDisposition::Normal, matcher, expr)
-#if !defined(CATCH_CONFIG_DISABLE_MATCHERS)
-#define CATCH_REQUIRE_THROWS_MATCHES(expr, exceptionType, matcher)                                                     \
-  INTERNAL_CATCH_THROWS_MATCHES("CATCH_REQUIRE_THROWS_MATCHES", exceptionType, Catch::ResultDisposition::Normal,       \
-                                matcher, expr)
-#endif // CATCH_CONFIG_DISABLE_MATCHERS
-#define CATCH_REQUIRE_NOTHROW(...)                                                                                     \
-  INTERNAL_CATCH_NO_THROW("CATCH_REQUIRE_NOTHROW", Catch::ResultDisposition::Normal, __VA_ARGS__)
-
-#define CATCH_CHECK(...) INTERNAL_CATCH_TEST("CATCH_CHECK", Catch::ResultDisposition::ContinueOnFailure, __VA_ARGS__)
-#define CATCH_CHECK_FALSE(...)                                                                                         \
-  INTERNAL_CATCH_TEST("CATCH_CHECK_FALSE",                                                                             \
-                      Catch::ResultDisposition::ContinueOnFailure | Catch::ResultDisposition::FalseTest, __VA_ARGS__)
-#define CATCH_CHECKED_IF(...)                                                                                          \
-  INTERNAL_CATCH_IF("CATCH_CHECKED_IF", Catch::ResultDisposition::ContinueOnFailure, __VA_ARGS__)
-#define CATCH_CHECKED_ELSE(...)                                                                                        \
-  INTERNAL_CATCH_ELSE("CATCH_CHECKED_ELSE", Catch::ResultDisposition::ContinueOnFailure, __VA_ARGS__)
-#define CATCH_CHECK_NOFAIL(...)                                                                                        \
-  INTERNAL_CATCH_TEST("CATCH_CHECK_NOFAIL",                                                                            \
-                      Catch::ResultDisposition::ContinueOnFailure | Catch::ResultDisposition::SuppressFail,            \
-                      __VA_ARGS__)
-
-#define CATCH_CHECK_THROWS(...)                                                                                        \
-  INTERNAL_CATCH_THROWS("CATCH_CHECK_THROWS", Catch::ResultDisposition::ContinueOnFailure, "", __VA_ARGS__)
-#define CATCH_CHECK_THROWS_AS(expr, exceptionType)                                                                     \
-  INTERNAL_CATCH_THROWS_AS("CATCH_CHECK_THROWS_AS", exceptionType, Catch::ResultDisposition::ContinueOnFailure, expr)
-#define CATCH_CHECK_THROWS_WITH(expr, matcher)                                                                         \
-  INTERNAL_CATCH_THROWS_STR_MATCHES("CATCH_CHECK_THROWS_WITH", Catch::ResultDisposition::ContinueOnFailure, matcher,   \
-                                    expr)
-#if !defined(CATCH_CONFIG_DISABLE_MATCHERS)
-#define CATCH_CHECK_THROWS_MATCHES(expr, exceptionType, matcher)                                                       \
-  INTERNAL_CATCH_THROWS_MATCHES("CATCH_CHECK_THROWS_MATCHES", exceptionType,                                           \
-                                Catch::ResultDisposition::ContinueOnFailure, matcher, expr)
-#endif // CATCH_CONFIG_DISABLE_MATCHERS
-#define CATCH_CHECK_NOTHROW(...)                                                                                       \
-  INTERNAL_CATCH_NO_THROW("CATCH_CHECK_NOTHROW", Catch::ResultDisposition::ContinueOnFailure, __VA_ARGS__)
-
-#if !defined(CATCH_CONFIG_DISABLE_MATCHERS)
-#define CATCH_CHECK_THAT(arg, matcher)                                                                                 \
-  INTERNAL_CHECK_THAT("CATCH_CHECK_THAT", matcher, Catch::ResultDisposition::ContinueOnFailure, arg)
-
-#define CATCH_REQUIRE_THAT(arg, matcher)                                                                               \
-  INTERNAL_CHECK_THAT("CATCH_REQUIRE_THAT", matcher, Catch::ResultDisposition::Normal, arg)
-#endif // CATCH_CONFIG_DISABLE_MATCHERS
-
-#define CATCH_INFO(msg) INTERNAL_CATCH_INFO("CATCH_INFO", msg)
-#define CATCH_WARN(msg)                                                                                                \
-  INTERNAL_CATCH_MSG("CATCH_WARN", Catch::ResultWas::Warning, Catch::ResultDisposition::ContinueOnFailure, msg)
-#define CATCH_CAPTURE(msg) INTERNAL_CATCH_INFO("CATCH_CAPTURE", #msg " := " << ::Catch::Detail::stringify(msg))
-
-#define CATCH_TEST_CASE(...) INTERNAL_CATCH_TESTCASE(__VA_ARGS__)
-#define CATCH_TEST_CASE_METHOD(className, ...) INTERNAL_CATCH_TEST_CASE_METHOD(className, __VA_ARGS__)
-#define CATCH_METHOD_AS_TEST_CASE(method, ...) INTERNAL_CATCH_METHOD_AS_TEST_CASE(method, __VA_ARGS__)
-#define CATCH_REGISTER_TEST_CASE(Function, ...) INTERNAL_CATCH_REGISTER_TESTCASE(Function, __VA_ARGS__)
-#define CATCH_SECTION(...) INTERNAL_CATCH_SECTION(__VA_ARGS__)
-#define CATCH_FAIL(...)                                                                                                \
-  INTERNAL_CATCH_MSG("CATCH_FAIL", Catch::ResultWas::ExplicitFailure, Catch::ResultDisposition::Normal, __VA_ARGS__)
-#define CATCH_FAIL_CHECK(...)                                                                                          \
-  INTERNAL_CATCH_MSG("CATCH_FAIL_CHECK", Catch::ResultWas::ExplicitFailure,                                            \
-                     Catch::ResultDisposition::ContinueOnFailure, __VA_ARGS__)
-#define CATCH_SUCCEED(...)                                                                                             \
-  INTERNAL_CATCH_MSG("CATCH_SUCCEED", Catch::ResultWas::Ok, Catch::ResultDisposition::ContinueOnFailure, __VA_ARGS__)
-
-#define CATCH_ANON_TEST_CASE() INTERNAL_CATCH_TESTCASE()
-
-// "BDD-style" convenience wrappers
-#define CATCH_SCENARIO(...) CATCH_TEST_CASE("Scenario: " __VA_ARGS__)
-#define CATCH_SCENARIO_METHOD(className, ...) INTERNAL_CATCH_TEST_CASE_METHOD(className, "Scenario: " __VA_ARGS__)
-#define CATCH_GIVEN(desc) CATCH_SECTION(std::string("Given: ") + desc)
-#define CATCH_WHEN(desc) CATCH_SECTION(std::string(" When: ") + desc)
-#define CATCH_AND_WHEN(desc) CATCH_SECTION(std::string("  And: ") + desc)
-#define CATCH_THEN(desc) CATCH_SECTION(std::string(" Then: ") + desc)
-#define CATCH_AND_THEN(desc) CATCH_SECTION(std::string("  And: ") + desc)
-
-// If CATCH_CONFIG_PREFIX_ALL is not defined then the CATCH_ prefix is not required
-#else
-
-#define REQUIRE(...) INTERNAL_CATCH_TEST("REQUIRE", Catch::ResultDisposition::Normal, __VA_ARGS__)
-#define REQUIRE_FALSE(...)                                                                                             \
-  INTERNAL_CATCH_TEST("REQUIRE_FALSE", Catch::ResultDisposition::Normal | Catch::ResultDisposition::FalseTest,         \
-                      __VA_ARGS__)
-
-#define REQUIRE_THROWS(...) INTERNAL_CATCH_THROWS("REQUIRE_THROWS", Catch::ResultDisposition::Normal, __VA_ARGS__)
-#define REQUIRE_THROWS_AS(expr, exceptionType)                                                                         \
-  INTERNAL_CATCH_THROWS_AS("REQUIRE_THROWS_AS", exceptionType, Catch::ResultDisposition::Normal, expr)
-#define REQUIRE_THROWS_WITH(expr, matcher)                                                                             \
-  INTERNAL_CATCH_THROWS_STR_MATCHES("REQUIRE_THROWS_WITH", Catch::ResultDisposition::Normal, matcher, expr)
-#if !defined(CATCH_CONFIG_DISABLE_MATCHERS)
-#define REQUIRE_THROWS_MATCHES(expr, exceptionType, matcher)                                                           \
-  INTERNAL_CATCH_THROWS_MATCHES("REQUIRE_THROWS_MATCHES", exceptionType, Catch::ResultDisposition::Normal, matcher,    \
-                                expr)
-#endif // CATCH_CONFIG_DISABLE_MATCHERS
-#define REQUIRE_NOTHROW(...) INTERNAL_CATCH_NO_THROW("REQUIRE_NOTHROW", Catch::ResultDisposition::Normal, __VA_ARGS__)
-
-#define CHECK(...) INTERNAL_CATCH_TEST("CHECK", Catch::ResultDisposition::ContinueOnFailure, __VA_ARGS__)
-#define CHECK_FALSE(...)                                                                                               \
-  INTERNAL_CATCH_TEST("CHECK_FALSE",                                                                                   \
-                      Catch::ResultDisposition::ContinueOnFailure | Catch::ResultDisposition::FalseTest, __VA_ARGS__)
-#define CHECKED_IF(...) INTERNAL_CATCH_IF("CHECKED_IF", Catch::ResultDisposition::ContinueOnFailure, __VA_ARGS__)
-#define CHECKED_ELSE(...) INTERNAL_CATCH_ELSE("CHECKED_ELSE", Catch::ResultDisposition::ContinueOnFailure, __VA_ARGS__)
-#define CHECK_NOFAIL(...)                                                                                              \
-  INTERNAL_CATCH_TEST("CHECK_NOFAIL",                                                                                  \
-                      Catch::ResultDisposition::ContinueOnFailure | Catch::ResultDisposition::SuppressFail,            \
-                      __VA_ARGS__)
-
-#define CHECK_THROWS(...)                                                                                              \
-  INTERNAL_CATCH_THROWS("CHECK_THROWS", Catch::ResultDisposition::ContinueOnFailure, __VA_ARGS__)
-#define CHECK_THROWS_AS(expr, exceptionType)                                                                           \
-  INTERNAL_CATCH_THROWS_AS("CHECK_THROWS_AS", exceptionType, Catch::ResultDisposition::ContinueOnFailure, expr)
-#define CHECK_THROWS_WITH(expr, matcher)                                                                               \
-  INTERNAL_CATCH_THROWS_STR_MATCHES("CHECK_THROWS_WITH", Catch::ResultDisposition::ContinueOnFailure, matcher, expr)
-#if !defined(CATCH_CONFIG_DISABLE_MATCHERS)
-#define CHECK_THROWS_MATCHES(expr, exceptionType, matcher)                                                             \
-  INTERNAL_CATCH_THROWS_MATCHES("CHECK_THROWS_MATCHES", exceptionType, Catch::ResultDisposition::ContinueOnFailure,    \
-                                matcher, expr)
-#endif // CATCH_CONFIG_DISABLE_MATCHERS
-#define CHECK_NOTHROW(...)                                                                                             \
-  INTERNAL_CATCH_NO_THROW("CHECK_NOTHROW", Catch::ResultDisposition::ContinueOnFailure, __VA_ARGS__)
-
-#if !defined(CATCH_CONFIG_DISABLE_MATCHERS)
-#define CHECK_THAT(arg, matcher)                                                                                       \
-  INTERNAL_CHECK_THAT("CHECK_THAT", matcher, Catch::ResultDisposition::ContinueOnFailure, arg)
-
-#define REQUIRE_THAT(arg, matcher) INTERNAL_CHECK_THAT("REQUIRE_THAT", matcher, Catch::ResultDisposition::Normal, arg)
-#endif // CATCH_CONFIG_DISABLE_MATCHERS
-
-#define INFO(msg) INTERNAL_CATCH_INFO("INFO", msg)
-#define WARN(msg)                                                                                                      \
-  INTERNAL_CATCH_MSG("WARN", Catch::ResultWas::Warning, Catch::ResultDisposition::ContinueOnFailure, msg)
-#define CAPTURE(msg) INTERNAL_CATCH_INFO("CAPTURE", #msg " := " << ::Catch::Detail::stringify(msg))
-
-#define TEST_CASE(...) INTERNAL_CATCH_TESTCASE(__VA_ARGS__)
-#define TEST_CASE_METHOD(className, ...) INTERNAL_CATCH_TEST_CASE_METHOD(className, __VA_ARGS__)
-#define METHOD_AS_TEST_CASE(method, ...) INTERNAL_CATCH_METHOD_AS_TEST_CASE(method, __VA_ARGS__)
-#define REGISTER_TEST_CASE(Function, ...) INTERNAL_CATCH_REGISTER_TESTCASE(Function, __VA_ARGS__)
-#define SECTION(...) INTERNAL_CATCH_SECTION(__VA_ARGS__)
-#define FAIL(...)                                                                                                      \
-  INTERNAL_CATCH_MSG("FAIL", Catch::ResultWas::ExplicitFailure, Catch::ResultDisposition::Normal, __VA_ARGS__)
-#define FAIL_CHECK(...)                                                                                                \
-  INTERNAL_CATCH_MSG("FAIL_CHECK", Catch::ResultWas::ExplicitFailure, Catch::ResultDisposition::ContinueOnFailure,     \
-                     __VA_ARGS__)
-#define SUCCEED(...)                                                                                                   \
-  INTERNAL_CATCH_MSG("SUCCEED", Catch::ResultWas::Ok, Catch::ResultDisposition::ContinueOnFailure, __VA_ARGS__)
-#define ANON_TEST_CASE() INTERNAL_CATCH_TESTCASE()
-
-#endif
-
-#define CATCH_TRANSLATE_EXCEPTION(signature) INTERNAL_CATCH_TRANSLATE_EXCEPTION(signature)
-
-// "BDD-style" convenience wrappers
-#define SCENARIO(...) TEST_CASE("Scenario: " __VA_ARGS__)
-#define SCENARIO_METHOD(className, ...) INTERNAL_CATCH_TEST_CASE_METHOD(className, "Scenario: " __VA_ARGS__)
-
-#define GIVEN(desc) SECTION(std::string("   Given: ") + desc)
-#define WHEN(desc) SECTION(std::string("    When: ") + desc)
-#define AND_WHEN(desc) SECTION(std::string("And when: ") + desc)
-#define THEN(desc) SECTION(std::string("    Then: ") + desc)
-#define AND_THEN(desc) SECTION(std::string("     And: ") + desc)
-
-using Catch::Detail::Approx;
-
-#else
-//////
-// If this config identifier is defined then all CATCH macros are prefixed with CATCH_
-#ifdef CATCH_CONFIG_PREFIX_ALL
-
-#define CATCH_REQUIRE(...) (void)(0)
-#define CATCH_REQUIRE_FALSE(...) (void)(0)
-
-#define CATCH_REQUIRE_THROWS(...) (void)(0)
-#define CATCH_REQUIRE_THROWS_AS(expr, exceptionType) (void)(0)
-#define CATCH_REQUIRE_THROWS_WITH(expr, matcher) (void)(0)
-#if !defined(CATCH_CONFIG_DISABLE_MATCHERS)
-#define CATCH_REQUIRE_THROWS_MATCHES(expr, exceptionType, matcher) (void)(0)
-#endif // CATCH_CONFIG_DISABLE_MATCHERS
-#define CATCH_REQUIRE_NOTHROW(...) (void)(0)
-
-#define CATCH_CHECK(...) (void)(0)
-#define CATCH_CHECK_FALSE(...) (void)(0)
-#define CATCH_CHECKED_IF(...) if (__VA_ARGS__)
-#define CATCH_CHECKED_ELSE(...) if (!(__VA_ARGS__))
-#define CATCH_CHECK_NOFAIL(...) (void)(0)
-
-#define CATCH_CHECK_THROWS(...) (void)(0)
-#define CATCH_CHECK_THROWS_AS(expr, exceptionType) (void)(0)
-#define CATCH_CHECK_THROWS_WITH(expr, matcher) (void)(0)
-#if !defined(CATCH_CONFIG_DISABLE_MATCHERS)
-#define CATCH_CHECK_THROWS_MATCHES(expr, exceptionType, matcher) (void)(0)
-#endif // CATCH_CONFIG_DISABLE_MATCHERS
-#define CATCH_CHECK_NOTHROW(...) (void)(0)
-
-#if !defined(CATCH_CONFIG_DISABLE_MATCHERS)
-#define CATCH_CHECK_THAT(arg, matcher) (void)(0)
-
-#define CATCH_REQUIRE_THAT(arg, matcher) (void)(0)
-#endif // CATCH_CONFIG_DISABLE_MATCHERS
-
-#define CATCH_INFO(msg) (void)(0)
-#define CATCH_WARN(msg) (void)(0)
-#define CATCH_CAPTURE(msg) (void)(0)
-
-#define CATCH_TEST_CASE(...)                                                                                           \
-  INTERNAL_CATCH_TESTCASE_NO_REGISTRATION(INTERNAL_CATCH_UNIQUE_NAME(____C_A_T_C_H____T_E_S_T____))
-#define CATCH_TEST_CASE_METHOD(className, ...)                                                                         \
-  INTERNAL_CATCH_TESTCASE_NO_REGISTRATION(INTERNAL_CATCH_UNIQUE_NAME(____C_A_T_C_H____T_E_S_T____))
-#define CATCH_METHOD_AS_TEST_CASE(method, ...)
-#define CATCH_REGISTER_TEST_CASE(Function, ...) (void)(0)
-#define CATCH_SECTION(...)
-#define CATCH_FAIL(...) (void)(0)
-#define CATCH_FAIL_CHECK(...) (void)(0)
-#define CATCH_SUCCEED(...) (void)(0)
-
-#define CATCH_ANON_TEST_CASE()                                                                                         \
-  INTERNAL_CATCH_TESTCASE_NO_REGISTRATION(INTERNAL_CATCH_UNIQUE_NAME(____C_A_T_C_H____T_E_S_T____))
-
-// "BDD-style" convenience wrappers
-#define CATCH_SCENARIO(...)                                                                                            \
-  INTERNAL_CATCH_TESTCASE_NO_REGISTRATION(INTERNAL_CATCH_UNIQUE_NAME(____C_A_T_C_H____T_E_S_T____))
-#define CATCH_SCENARIO_METHOD(className, ...)                                                                          \
-  INTERNAL_CATCH_TESTCASE_METHOD_NO_REGISTRATION(INTERNAL_CATCH_UNIQUE_NAME(____C_A_T_C_H____T_E_S_T____), className)
-#define CATCH_GIVEN(desc)
-#define CATCH_WHEN(desc)
-#define CATCH_AND_WHEN(desc)
-#define CATCH_THEN(desc)
-#define CATCH_AND_THEN(desc)
-
-// If CATCH_CONFIG_PREFIX_ALL is not defined then the CATCH_ prefix is not required
-#else
-
-#define REQUIRE(...) (void)(0)
-#define REQUIRE_FALSE(...) (void)(0)
-
-#define REQUIRE_THROWS(...) (void)(0)
-#define REQUIRE_THROWS_AS(expr, exceptionType) (void)(0)
-#define REQUIRE_THROWS_WITH(expr, matcher) (void)(0)
-#if !defined(CATCH_CONFIG_DISABLE_MATCHERS)
-#define REQUIRE_THROWS_MATCHES(expr, exceptionType, matcher) (void)(0)
-#endif // CATCH_CONFIG_DISABLE_MATCHERS
-#define REQUIRE_NOTHROW(...) (void)(0)
-
-#define CHECK(...) (void)(0)
-#define CHECK_FALSE(...) (void)(0)
-#define CHECKED_IF(...) if (__VA_ARGS__)
-#define CHECKED_ELSE(...) if (!(__VA_ARGS__))
-#define CHECK_NOFAIL(...) (void)(0)
-
-#define CHECK_THROWS(...) (void)(0)
-#define CHECK_THROWS_AS(expr, exceptionType) (void)(0)
-#define CHECK_THROWS_WITH(expr, matcher) (void)(0)
-#if !defined(CATCH_CONFIG_DISABLE_MATCHERS)
-#define CHECK_THROWS_MATCHES(expr, exceptionType, matcher) (void)(0)
-#endif // CATCH_CONFIG_DISABLE_MATCHERS
-#define CHECK_NOTHROW(...) (void)(0)
-
-#if !defined(CATCH_CONFIG_DISABLE_MATCHERS)
-#define CHECK_THAT(arg, matcher) (void)(0)
-
-#define REQUIRE_THAT(arg, matcher) (void)(0)
-#endif // CATCH_CONFIG_DISABLE_MATCHERS
-
-#define INFO(msg) (void)(0)
-#define WARN(msg) (void)(0)
-#define CAPTURE(msg) (void)(0)
-
-#define TEST_CASE(...) INTERNAL_CATCH_TESTCASE_NO_REGISTRATION(INTERNAL_CATCH_UNIQUE_NAME(____C_A_T_C_H____T_E_S_T____))
-#define TEST_CASE_METHOD(className, ...)                                                                               \
-  INTERNAL_CATCH_TESTCASE_NO_REGISTRATION(INTERNAL_CATCH_UNIQUE_NAME(____C_A_T_C_H____T_E_S_T____))
-#define METHOD_AS_TEST_CASE(method, ...)
-#define REGISTER_TEST_CASE(Function, ...) (void)(0)
-#define SECTION(...)
-#define FAIL(...) (void)(0)
-#define FAIL_CHECK(...) (void)(0)
-#define SUCCEED(...) (void)(0)
-#define ANON_TEST_CASE()                                                                                               \
-  INTERNAL_CATCH_TESTCASE_NO_REGISTRATION(INTERNAL_CATCH_UNIQUE_NAME(____C_A_T_C_H____T_E_S_T____))
-
-#endif
-
-#define CATCH_TRANSLATE_EXCEPTION(signature)                                                                           \
-  INTERNAL_CATCH_TRANSLATE_EXCEPTION_NO_REG(INTERNAL_CATCH_UNIQUE_NAME(catch_internal_ExceptionTranslator), signature)
-
-// "BDD-style" convenience wrappers
-#define SCENARIO(...) INTERNAL_CATCH_TESTCASE_NO_REGISTRATION(INTERNAL_CATCH_UNIQUE_NAME(____C_A_T_C_H____T_E_S_T____))
-#define SCENARIO_METHOD(className, ...)                                                                                \
-  INTERNAL_CATCH_TESTCASE_METHOD_NO_REGISTRATION(INTERNAL_CATCH_UNIQUE_NAME(____C_A_T_C_H____T_E_S_T____), className)
-
-#define GIVEN(desc)
-#define WHEN(desc)
-#define AND_WHEN(desc)
-#define THEN(desc)
-#define AND_THEN(desc)
-
-using Catch::Detail::Approx;
-
-#endif
-
-#endif // ! CATCH_CONFIG_IMPL_ONLY
-
-// start catch_reenable_warnings.h
-
-#ifdef __clang__
-#ifdef __ICC // icpc defines the __clang__ macro
-#pragma warning(pop)
-#else
-#pragma clang diagnostic pop
-#endif
-#elif defined __GNUC__
-#pragma GCC diagnostic pop
-#endif
-
-// end catch_reenable_warnings.h
-// end catch.hpp
-#endif // TWOBLUECUBES_SINGLE_INCLUDE_CATCH_HPP_INCLUDED